2010-03-03 2 views
20

난 그냥이 개 매개 변수를 할 수있는 기능을 원하는? 감사. Python documentation에서Python의 httplib을 사용하여 매개 변수 사전이 포함 된 URL로 POST를 보내려면 어떻게해야합니까?</p> <ul> <li>URL이</li> <li>매개 변수이이 HTTPLIB 함께 할 수있는 방법</li> </ul> <p>의 사전에 게시 :

+1

urllib module에 대한 urllib2를 사용하십시오. http://stackoverflow.com/questions/321582/urllib2-data-sending. –

답변

38

: 단지 URLLIB 사용

>>> 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("musi-cal.mojam.com:80") 
>>> conn.request("POST", "/cgi-bin/query", params, headers) 
>>> response = conn.getresponse() 
>>> print response.status, response.reason 
200 OK 
>>> data = response.read() 
>>> conn.close() 
+29

크레디트가 만료되는 크레디트 : http://docs.python.org/release/2.6/library/httplib.html에서 직접 리핑되었습니다 (2.5.2 또는 그 이전에는 그다지 변하지 않았습니다) – dland

+0

매개 변수가 해당 형식이어야합니까? 원시 텍스트 일 ​​수 있습니까? –

+0

예 원시 텍스트를 params로 전달할 수 있습니다. urllib.urlencode'는 전달할 문자열을 인코딩하는 url을 처리합니다. 인쇄 할 경우 문자열이 표시됩니다. – Ole

10

더 간단한 하나 : 파이썬 문서에서 발견

import urllib 
params = urllib.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0}) 
f = urllib.urlopen("http://www.example.org/cgi-bin/query", params) 
print f.read() 

+5

미안하지만, POST가 아닌 HTTP GET – hko

+3

@hko 아니요, urllib 페이지의 POST 예제입니다. params는'% params' 대신', params'를 사용하여 추가됩니다. –