Bir POST tekniği kullanarak bir web API'sine erişmeye çalışıyorum. Bir GET tekniği kullanarak erişebiliyorum, ancak API sahipleri bana bazı işlevlerin yalnızca POST ile çalıştığını söylüyor. Maalesef POST çalışmasını göremiyorum.Web API'sine erişmek için POST ve urllib2 kullanma API
Burada GET ile çalışır budur:
API_URL = "http://example.com/api/"
def call_api(method, **kwargs):
url = API_URL + method
if kwargs:
url += '?' + urllib.urlencode(kwargs)
req = urllib2.Request(url)
auth = 'Basic ' + base64.urlsafe_b64encode("%s:%s" % (USER, PASS))
req.add_header('Authorization', auth)
return urllib2.urlopen(req)
İşte POST ile değil iş ne (HTTP 400 hatası neden olur):
API_URL = "http://example.com/api/"
def call_api(method, **kwargs):
url = API_URL + method
data=''
if kwargs:
data=urllib.urlencode(kwargs)
req = urllib2.Request(url, data)
auth = 'Basic ' + base64.urlsafe_b64encode("%s:%s" % (USER, PASS))
req.add_header('Authorization', auth)
return urllib2.urlopen(req)
mu şey de doğal olarak yanlış olarak herkes dışarı atlamak POST kodu? Daha önce hiç bir POST araması yapmadım ama okuduğum her şey benim kodumun makul olduğunu gösteriyor gibi görünüyor. POST kullanıyorum eğer yetkilendirme için add_header şeyi yapmak için bazı farklı yolu var mı? urllib2
ile
POST kodunuz, GET kodunuzla tamamen aynı gibi görünüyor. Yanlış bir şey kopyalayıp yapıştırdınız mı? –
Doh! Evet, bir yapıştırma hatası oluştu. Şimdi sabit. – neomech