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()
示例#4
0
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()