Python &引用;邮政「;使用urllib2的方法不';行不通

Python &引用;邮政「;使用urllib2的方法不';行不通,python,urllib2,cookielib,Python,Urllib2,Cookielib,我试图用python发出一个POST请求,它基本上会从“模板”中获取一个文件,并将其放入skytap中的“配置”中,我在python中遇到一些POST请求问题。 代码如下所示: import urllib,urllib2, base64, cookielib cookie_jar=cookielib.LWPCookieJar() opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_jar)) urllib2.install

我试图用python发出一个POST请求,它基本上会从“模板”中获取一个文件,并将其放入skytap中的“配置”中,我在python中遇到一些POST请求问题。 代码如下所示:

import urllib,urllib2, base64, cookielib
cookie_jar=cookielib.LWPCookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_jar))
urllib2.install_opener(opener)
#--------------
url="http://cloud.skytap.com/configurations"
values={"template_id":"1234"}
authentication=base64.b64encode("username:password")
header={"Authorization":"Basic %s"%authentication, "Accept":"application/json","Content-Type":"application/json"}
data=urllib.urlencode(values)
req=urllib2.Request(url,data,header)
res=urllib2.urlopen(req)
the_page=res.read()
print the_page
但是我不知道如何调试哪里出了问题,因为输出仍然没有返回应该传递给POST的新资源。 只是为了让你有更多的视角,输出应该是

[{template:123124,name:abc} <-- already existing template 
,{template:1234,name:new_template}]
感谢任何能帮助我解决这个问题的帮助

编辑:我在python中使用了相同的请求模块,但仍然不起作用。 为了确保我没有犯愚蠢的错误,下面是代码:

r=requests.post(url,data=json.dumps(values),headers=header)

如果可能的话,我会使用requests模块()。使用urllib和urllib2,您将生成无法读取的代码。我也尝试过使用请求,但仍然不起作用:(您能否使用curl成功发布此服务的帖子?这将确认您了解必须如何发布请求。这可能是因为对Skytap API的工作原理存在误解。您使用两个不同的框架尝试此操作均未成功,这一事实更强烈地表明存在一些更深层次的问题:您可能没有正确地向远程系统进行身份验证,或者可能没有正确地构造您的请求或其他内容。您可以在任何环境中生成工作请求吗?我可以执行curl请求并获得正确的响应。
r=requests.post(url,data=json.dumps(values),headers=header)