如何从CherryPy中的POST请求接收JSON?
我去过此页面,尽管它在解释API,其参数及其作用方面做得很好。我似乎无法弄清楚如何使用它们将传入的JSON解析为一个对象。
这是我到目前为止的内容:
import cherrypy
import json
from web.models.card import card
from web.models.session import getSession
from web.controllers.error import formatEx, handle_error
class CardRequestHandler(object):
@cherrypy.expose
def update(self, **jsonText):
db = getSession()
result = {"operation" : "update", "result" : "success" }
try:
u = json.loads(jsonText)
c = db.query(card).filter(card.id == u.id)
c.name = u.name
c.content = u.content
rzSession.commit()
except:
result["result"] = { "exception" : formatEx() }
return json.dumps(result)
而且,这是我的jquery调用以发布帖子
function Update(el){
el = jq(el); // makes sure that this is a jquery object
var pc = el.parent().parent();
pc = ToJSON(pc);
//$.ajaxSetup({ scriptCharset : "utf-8" });
$.post( "http://localhost/wsgi/raspberry/card/update", pc,
function(data){
alert("Hello Update Response: " + data);
},
"json");
}
function ToJSON(h){
h = jq(h);
return {
"id" : h.attr("id"),
"name" : h.get(0).innerText,
"content" : h.find(".Content").get(0).innerText
};
}
工作示例:
import cherrypy
import simplejson
class Root(object):
@cherrypy.expose
def update(self):
cl = cherrypy.request.headers['Content-Length']
rawbody = cherrypy.request.body.read(int(cl))
body = simplejson.loads(rawbody)
# do_something_with(body)
return "Updated %r." % (body,)
@cherrypy.expose
def index(self):
return """
<html>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type='text/javascript'>
function Update() {
$.ajax({
type: 'POST',
url: "update",
contentType: "application/json",
processData: false,
data: $('#updatebox').val(),
success: function(data) {alert(data);},
dataType: "text"
});
}
</script>
<body>
<input type='textbox' id='updatebox' value='{}' size='20' />
<input type='submit' value='Update' onClick='Update(); return false' />
</body>
</html>
"""
cherrypy.quickstart(Root())
链接到的文档介绍了3.2版中的几个CherryPy工具。该json_in
工具基本上可以更严格地完成上述操作,并使用3.2中的新主体处理API。
需要注意的重要一件事是,jQuery的post
功能似乎无法发送JSON(只能接收JSON)。该dataType
参数指定您希望XmlHTTPRequest
接收 的数据类型,而不是它将发送的类型,并且似乎没有可用的参数来指定要发送的类型。ajax()
相反,使用可以指定。
问题内容: 我们制作了一个AngularJS应用,其中用户打开一个URL(xyz.com/booking)填写表格,然后选择一些要购买的物品。 之后,该用户单击“购买”按钮,并离开该站点进入支付网关站点。成功付款后,Payment Gateway会通过在回调URL(xyz.com/booking- success)上发送POST请求来发回用户。 现在的问题是,我为该回调URL配置的相应Angula
问题内容: 我正在学习Django 1.6。 我想使用HTTP POST请求发布一些JSON,并且我正在使用Django完成此任务的学习。 我试图用,但都不是为我工作。 我的views.py是 我正在使用请求模块发布JSON数据。 应该打印该消息并发布数据,但是我无法解决此简单问题。请告诉我如何在Django 1.6中收集发布的数据? 问题答案: 你在这里混淆了表单编码和JSON数据。用于表单编码
我目前正在使用Web API开发REST Web服务。 现在我试图通过帖子接收流文件和对象。 当我发送它没有JobPosition对象时,我正确地收到了文件,也当我发送JobPosition没有文件时,我正确地收到了JobPosition。 但是当我通过邮递员发送流文件和对象时,我收到了错误。 我将感谢您的帮助,了解这是否可能,如果可能的话,方向将帮助我。 我尝试了所有可能的内容类型组合,但没有成
我如何解析JSON请求之类的东西? 示例代码: 带有_名称的位置_为无
问题内容: 我正在尝试发出POST请求,但无法完成。另一端什么也没收到。 这是应该如何工作的吗?我知道该功能,但我想我不能使用它,因为它不能用测试,对吗? 问题答案: 您基本上有正确的想法,只是发送错误的表格。该表格属于请求的正文。
我正在尝试在Spring Boot中使用WebClient制作API POST Request。但是我无法以JSONObject的形式发出请求并接收响应。使用RestTemboard我做到了,最近我开始学习WebClient。所以我被卡住了。 错误Spring给出:错误:(48,28)java:不兼容的类型:不存在类型变量T的实例,因此reactor.core.publisher.Mono符合or