2010-03-03 15 views

cevap

38

: sadece urllib kullanarak

>>> 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

Kredi aşağıdaki durumlarda geçerlidir: bu, doğrudan http://docs.python.org/release/2.6/library/httplib.html adresinden kopyalanmıştır (veya 2.5.2 veya daha önceki sürümlerde, yıllar içinde pek değişmemiştir) – dland

+0

Paramlerin bu biçimde olması gerekiyor mu? Ham metin olabilir mi? –

+0

Evet, ham metinde params olarak geçebilir, urllib.urlencode' sadece iletilecek dizeyi kodlayan url ile ilgilenir, eğer basarsanız onu sadece bir string – Ole

10

Daha basit bir,: Python docs Bulundu

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

görürsünüz, ama bu büyük ihtimalle HTTP GET, bir POST – hko

+3

@ hko Hayır değil, bu urllib sayfasındaki POST örneğidir. Paramların '% params' yerine' params' ile eklendiğini unutmayın. –