我有一台服务器需要能够接受JSON然后处理它然后再发送JSON。我服务器端的代码使用 bottle.py和cherrypy 。关注的路线如下:
@route ('/tagTweets', method='POST')
def tagTweets():
response.content_type = 'application/json'
# here I need to be able to parse JSON send along in this request.
要请求此页面并测试功能,我正在使用请求模块代码:
我必须发送的数据是推文列表。数据本身是从某个服务器获取的,该服务器返回推文列表。对于获取推文,我使用requests.get
然后使用响应对象的json方法。这工作正常。现在我对此进行了一些处理后,我必须发送这个json,就像我获取到另一台服务器一样。
url = "http://localhost:8080/tagTweets"
data = {'sender': 'Alice', 'receiver': 'Bob', 'message': 'We did it!'}
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
r = requests.post(url, data=json.dumps(data), headers=headers)
我无法弄清楚如何获取对请求的json发送的访问权限。
答案 0 :(得分:5)
对于application/json
POST,只需访问request.json
:
@route ('/tagTweets', method='POST')
def tagTweets():
response.content_type = 'application/json'
sender = request.json['sender']
receiver = request.json['receiver']
message = request.json['message']
答案 1 :(得分:0)
试一试......
// CherryPy的
import json
@route ('/tagTweets', method='POST')
def tagTweets(UpdatedData=None):
Data = json.loads(UpdatedData)
// java描述
function SendJson()
{
var JSONObject = { changes: [] };
JSONObject.changes.push({"sender": "Alice", "receiver": "Bob" }
);
// code for IE7+, Firefox, Chrome, Opera, Safari
if(window.XMLHttpRequest)
xmlhttp=new XMLHttpRequest();
else// code for IE6, IE5
xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
alert(xmlhttp.responseText);
}
}
xmlhttp.open("POST","/tagTweets", true);
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send(JSON.stringify(JSONObject));
}
希望这有帮助。
安德鲁