这很好用,我可以返回数据:
r = urllib2.Request("http://myServer.com:12345/myAction")
data = json.dumps(q) #q is a python dict
r.add_data(data)
r=urllib2.urlopen(r)
但对请求包执行相同操作失败:
r=requests.get("http://myServer.com:12345/myAction", data=q)
r.text #This will return a message that says method is not allowed.
如果我将其作为发布请求,则有效:r=requests.post("http://myServer.com:12345/myAction", data=json.dumps(q))
但为什么?
答案 0 :(得分:0)
设置会话
import session
session = requests.Session()
r = session.get("http://myServer.com:12345/myAction", data=q)
print r.content (<- or could us r.raw)
答案 1 :(得分:0)
根据urllib2.urlopen
documentation:
当提供数据参数时,HTTP请求将是POST而不是GET。
这样,r=urllib2.urlopen(r)
也在发出POST请求。这就是为什么requests.get
无法正常工作,requests.post
无效。