当前位置: 首页 > 知识库问答 >
问题:

在播放框架java中检索POST请求中发送的请求正文字符串

曹理
2023-03-14

我在Java中使用play框架。我想检索在POST请求中发送到play服务器的整个请求正文。我怎样才能取回它?

共有3个答案

蔡鹏程
2023-03-14

如果您在请求时调用以下代码;

String bodyText = request().body().asText();

如果内容类型标题为application/json,bodyText将为null

如果内容类型头是application/JSON,那么没有一种方法可以使用提供的控制器api只获取JSON文本,而不首先转换为JsonNode

因此,如果应用程序/json是您的内容类型头,那么最好的方法是

String bodyText = request().body().asJSON().toString();

这是play框架的一个失败,因为他们应该有一个方法来将请求主体作为字符串获取,不管内容类型标题是什么。

蒋高杰
2023-03-14

与播放框架2.3它可以得到原始的json文本甚至是内容类型的头是应用程序/json

scala prettyprint-override">def postMethod = Action(parse.tolerantText) { request =>
    val txt = request.body
}
方璞
2023-03-14

看看游戏。mvc。Httpclass,这里有一些选项(取决于数据格式),例如。

RequestBody body = request().body();
MultipartFormData formData = request().body().asMultipartFormData();
Map<String, String[]> params = request().body().asFormUrlEncoded();
JsonNode json = request().body().asJson();
String bodyText = request().body().asText();

您可以测试请求(). body(). asText(),即使用命令行中的cUrl:

curl  -H "Content-Type: text/plain" -d  'Hello world !' http://domain.com/your-post-action

...或者使用一些工具,如浏览器插件:https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo

 类似资料:
  • 代码如下: 这将向flask发送一个{“name”:“go”}JSON字典。Flask应该将语言名称追加到数组中,并在响应中返回完整的数组。现在,当我手动发送请求时,这就工作了,所以这不是Flask的错误。但是当我从iOS发送上述内容时,我在flask控制台中得到request.json==None。很明显,我送的是一具空尸体,但我不应该。你知道我哪里出了问题吗?

  • 请求方式: "|3|2|url,content|\r" 参数: url 设置Post请求的url链接 content post请求的数据 返回值: "|3|code|data|\r" 参数: code http请求返回的成功或者错误码 成功:code = 200 获取数据失败:code = -1 http请求字段错误:code = 1 data http请求返回的数据 Arduino样例: sof

  • 问题内容: 我尝试使用Apiary,并制作了一个通用模板以将JSON发送到模拟服务器并具有以下代码: 这段代码无法正确发送JSON,但我不知道为什么。每个调用中的JSON字符串可以不同。我不能用这个。 问题答案: 我对打n并不熟悉,但是使用Golang的程序包可以很好地工作(游乐场):

  • 我尝试使用Apariy,制作了一个通用模板,将JSON发送到模拟服务器,并获得以下代码: 这段代码不能正确发送JSON,但我不知道为什么。JSON字符串可以在每次调用中不同。我不能为此使用。

  • 我得到以下错误 响应数据为空。我做错了什么,或者我在代码中遗漏了什么?