import httplib
conn=httplib.HTTPConnection("httpbin.org/") # Do not use "http://"
conn.request("GET","/get")
r1 =conn.getresponse()
print r1.status
print r1.reason
print r1.read()
그리고 평소 궁금했었는데 해결된 궁금증이 있다. "putrequest와 request 변수의 차이점"이 바로 그것이다.
해결 : request 함수는 변수의 인자로 헤더값을 넣을 수 있다. 때문에 헤더값을 따로 넣지않더라도 end of header를 알리기 위해서 공백라인을 서버에 전달한다.
반면 putrequest 함수는 인자로 헤더값을 넣을 수 없다. putheader 함수로 별도로 넣어줘야 한다. putrequest 를 사용했는데 putheader를 사용안하면 에러가 발생한다.
글로 표현하니까 조금 어렵게 들린다.
위 처럼 헤더값 입력 없이 /get 메소드만 요청할 때는 request 를 사용하고
위 처럼 header 한 라인씩 입력할 때는 putrequest 를 입력하고 putheader 로 헤더값을 삽입한다.
보통 파라미터나 헤더값을 입력 할 때는 사전(Dictionary)을 이용하는 것 같다.
import httplib, urllib
params = urllib.urlencode({'spam': 1, 'eggs':2, 'bacon':0})
headers={"Content-type":"application/x-www-form-urlencoded","Accept":"text/plain"}
conn=httplib.HTTPconnection("www.site.com")
conn.request("POST","/cgi-bin/query", params, headers)
response = conn.getresponse()