玩 1.2.4:处理 POST 请求,body 中带有 XML

Posted

技术标签:

【中文标题】玩 1.2.4:处理 POST 请求,body 中带有 XML【英文标题】:Play 1.2.4: process POST request with XML in the body 【发布时间】:2012-05-08 18:27:46 【问题描述】:

我搜索了处理以 XML 为主体的 POST 请求的文档/示例,但似乎找不到 play 1.2.4 的最新示例(有一个很好的注释可以用于不过玩2.0)。

我有一个像这样发布 XML 的 Flex 应用程序:

public function post( url:String, xml:XML ):void

    var service:HTTPService = new HTTPService();
    var responder:Responder = new Responder( postResult, postFault );
    var token:AsyncToken;
    service.method = "POST";
    service.contentType = "application/xml";
    service.resultFormat = "e4x";
    service.url = url;
    token = service.send( xml );
    token.addResponder( responder );

如何以 XML 格式访问正文,以便使用 JAXB 对其进行处理?

谢谢!

【问题讨论】:

您可以在控制器中使用 request.body 访问 HTTP POST 请求的正文,注意它是 InputStream 类型。然后你可以使用任何 XML 解析器或序列化器/反序列化器来处理它 【参考方案1】:

我知道有两种方法。

    您可以使用request.body,它返回一个 InputStream。对于习惯简单 Play 的人来说可能有点啰嗦。

    只需致电params.get("body")。这将返回整个身体。

显然,您最有可能选择选项 2,但对于某些用例,选项 1 可能是首选。

【讨论】:

以上是关于玩 1.2.4:处理 POST 请求,body 中带有 XML的主要内容,如果未能解决你的问题,请参考以下文章

从 $request_body 记录 POST 数据

python post请求携带json body

POST请求 之 对数据进行编码处理

c# 服务端接收post过来的body内容

Postman中post 请求body的四种类型

Postman中post 请求body的四种类型