我想使用POST技术访问Web API。我可以使用GET技术访问它,但API所有者告诉我某些功能仅适用于POST。不幸的是,我似乎无法开机自检。使用POST和urllib2访问网络API
下面是用GET是什么在起作用:
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)
这里是不与岗位工作(导致HTTP 400错误):
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)
做任何事情在任何人跳出来为在本质上不正确POST代码?我从来没有做过POST调用,但我读过的所有内容似乎都表明我的代码是合理的。如果我使用POST,是否有一些不同的方式可以为授权执行add_header事情?
您的POST代码看起来与您的GET代码完全相同。你是否复制并粘贴了错误的东西? – 2010-11-16 15:02:52
Doh!是的,有一个粘贴错误。现在修复。 – neomech 2010-11-16 15:30:29