如何在python3中发出POST请求?
我正在尝试通过json-rpc获取谷歌加上一些网址,这是常见但非官方的方式。
我找到了这段代码,但我无法让它工作:
import urllib2, json
data = '[{"method":"pos.plusones.get","id":"p","params":{"nolog":true,"id":"%s","source":"widget","userId":"@viewer","groupId":"@self"},"jsonrpc":"2.0","key":"p","apiVersion":"v1"}]' % "http://stackoverflow.com"
url = "https://clients6.google.com/rpc?key=AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ"
req = urllib2.Request(url, data, {'Content-Type': 'application/json'})
f = urllib2.urlopen(req)
response = f.read()
f.close()
result = json.loads(response)
print int(result[0]['result']['metadata']['globalCounts']['count'])
文档也不是那么有用。我可以毫无问题地使用其他工具来执行请求,但不能在python3中执行。有什么提示吗?
答案 0 :(得分:3)
如果你想做一些POST
或其他HTTP请求,我可以建议出色的Requests库。
尝试这样的事情:
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://URL.org", params=payload)
if r.status_code == 200:
json = r.json()
else:
json = None