充分利用POST请求的Python
问题描述:
我目前张贴到一个服务器,像这样的JSON响应:充分利用POST请求的Python
req = urllib2.Request('http://xxx.xxx.xx.xx/upload/')
req.add_header('Content-Type', 'application/json')
response = urllib2.urlopen(req, json_string)
print(response.getcode())
我得到一个200码回不过我想读服务器发回的JSON。我该怎么做呢? (搭售以避免使用请求库)
答
我没有得到代码,因为我没有url。 尝试:
req = urllib2.Request('http://xxx.xxx.xx.xx/upload/')
req.add_header('Content-Type', 'application/json')
response = urllib2.urlopen(req, json_string)
print(response.read())
答
为了得到响应不只是你需要分析与json
库
import json
req = urllib2.Request('http://xxx.xxx.xx.xx/upload/')
req.add_header('Content-Type', 'application/json')
response = urllib2.urlopen(req, json_string)
json_response = json.loads(response.read().decode('ascii'))
的响应json
序列化的字符串的实际json
对象的编码也可能是utf-8
取决于服务器发回你的哟。
另外,您可以使用requests
库,我觉得更容易互动,你需要单独安装它虽然与pip install requests
import requests, json
response = requests.post('http://xxx.xxx.xx.xx/upload', data={'data': json_string})
if response.ok:
response_json = response.json()
else:
print('Something went wrong, server sent code {}'.format(response.status_code))
从[文件](HTTPS: //docs.python.org/2/library/urllib2.html#urllib2.urlopen):getcode() - 返回响应的HTTP状态码。 –