Sadece 2 parametre alabilen bir işlevi istiyor? Teşekkürler. Python documentation itibarenPython'un httplib'sini, URL'ye bir parametreye POST göndermek için nasıl kullanırım?</p> <ul> <li>URL</li> <li>parametreleri bu httplib ile yapılabilir nasıl</li> </ul> <p>bir sözlük için POST:
cevap
: 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()
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
Paramlerin bu biçimde olması gerekiyor mu? Ham metin olabilir mi? –
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
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()
görürsünüz, ama bu büyük ihtimalle HTTP GET, bir POST – hko
@ hko Hayır değil, bu urllib sayfasındaki POST örneğidir. Paramların '% params' yerine' params' ile eklendiğini unutmayın. –
urllib module için urllib2 kullanın. http://stackoverflow.com/questions/321582/urllib2-data-sending. –