充分利用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。我该怎么做呢? (搭售以避免使用请求库)

+0

从[文件](HTTPS: //docs.python.org/2/library/urllib2.html#urllib2.urlopen):getcode() - 返回响应的HTTP状态码。 –

我没有得到代码,因为我没有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)) 

requests library docs