def main(): # määritellään socketin sekä headerin host host = "httpbin.org" # luodaan uusi socket-objecti (ipv4/tcp) sukka = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sukka.connect((host, 80)) req = HttpRequest("GET", "/", headers={"Host": host, "Connection": "close"}) # Luodaan aikaisemmin luodun socket-objectin avulla uusi f-niminen fileobjecti makefile() metodia käyttäen # makefile() metodi palauttaa siis uuden fileobjectin joka on sidottu socket-objectiin f = sukka.makefile() req.write_to(f) # Kutsutaan HttpRequest-luokassa määriteltyä metodia write_to() (huomaa että ollaan käytetty write() send() sijaan) # ts. read and write käännetään sisäisesti send ja recv kutsuiksi # tulostellaan kaikki mitä serveri oksentaa takaisin, koska meillä on vain request-toiminnallisuus #response = HttpResponse.read_from(f) #print response.status_code #print "**********************response body**********************" #print response.body response = HttpResponse(200,"OK","Begin body\n",headers={"Host":"localhost"}) response.write_to(sys.stdout) # for line in f: # print line # suljetaan file- sekä socket-objecti f.close() sukka.close()
def main1(): host = "httpbin.org" sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((host, 80)) # https://tools.ietf.org/html/rfc7230#section-6.1 req = HttpRequest("GET", "/", headers={ "Host": host, "Connection": "close" }) f = sock.makefile() req.write_to(f) ''' response = HttpResponse.read_from(f) print response.status_code print "tästä alkaa responsen body" print response.body ''' response = HttpResponse(200, "OK", "Olen torso\n", headers={"Host": "localhost"}) response.write_to(sys.stdout) f.close() sock.close()
def main(): host = "httpbin.org" sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((host, 80)) # https://tools.ietf.org/html/rfc7230#section-6.1 req = HttpRequest("GET", "/", headers={ "Host": host, "Connection": "close" }) f = sock.makefile() req.write_to(f) for line in f: print line f.close() sock.close()
def main(): host = "httpbin.org" s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((host, 80)) req = HttpRequest("GET", "/", headers={ "Host": host, "Connection": "close" }) f = s.makefile() req.write_to(f) for line in f: print line f.close() s.close()