我看到了一个问题,我希望能做一次精神检查。。。我在UI端处理Spring Boot控制器方法的返回。该方法返回一个字符串,其@RequestMapping将“consumes”定义为JSON。没有定义“产品”。
在UI端,我看到了一个错误,因为在响应头中,内容类型被列为application/json,但它实际上是一个字符串,所以当它尝试解析json时失败。
Spring是否会因为consumes设置为JSON而Products未设置而假设Products类型为JSON?无论方法的返回类型是什么,products都默认为consumes设置为什么?
以下是有问题的方法,去掉了任何识别细节:
@ApiOperation(value = "Do the thing", notes = "The API does the thing", response = String.class)
@RequestMapping(value = "/do/{the}/thing", method = RequestMethod.POST, consumes = "application/json")
public String doTheThing(
@ApiParam(value = "HttpHeaders parameter containing user authorization token.")
@RequestHeader(value = AUTHORIZATION_HEADER_NAME) String authorization,
@ApiParam(value = "Object ID of the existing thing.")
@PathVariable String thingId,
@ApiParam(value = "A map of properties for the thing to be created. This typically includes mandatory fields such as thing name and type.")
@RequestBody Map<String, Object> plan,@RequestParam(value = "tagName", required = false) String tagName) {
<Code to do the thing, and return a string>
return response;
}
然后,在UI developer窗口中,如果我查看来自该方法的响应的标题,就会发现JSON的内容类型:
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://127.0.0.1:9000
Access-Control-Expose-Headers: Access-Control-Allow-Origin,Access-Control-
Allow-Credentials,Access-Control-Allow-Methods
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Content-Type: application/json;charset=UTF-8
Date: Tue, 16 Oct 2018 18:11:22 GMT
Expires: 0
Pragma: no-cache
Server: Apache-Coyote/1.1
Transfer-Encoding: chunked
X-Application-Context: bootstrap
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
根据问题描述,您需要返回json。如果将字符串“I am a test”作为json返回,则结果将是相同的。当您的应用程序是spring mvc应用程序时,问题就出现了。在本例中,它将尝试将其解析为视图,而不是纯文本。
解决:
>
将@ResponseBody添加到您的方法中
为了回答您最初的问题,spring将尝试根据您包含的依赖项来确定返回哪种类型。如果它依赖于spring web,它将尝试解析视图。如果你有一个@RestController,它会根据jackson的依赖关系来计算出来。
如果我不理解您真正的问题,请澄清并添加依赖项。
一个db家伙在PostgreSQL上编写了以下查询。它将返回此json: 我需要创建一个具有这些id的模型类,并将这个json值插入到该模型类中,plz是否有人可以帮助。。。如果它返回我可以处理的结果集,但它返回的是json,那么请给我一个合适的代码来克服朋友和成员。提前谢谢 查询:
而且 不是应该都返回吗?它不是基元变量,在第二个代码中,即使在添加零之后,它也会打印。我知道装箱(对于从-128到127的整数),但是为什么装箱在第二段代码中起作用而不是在第一段代码中起作用呢?
我找不到这个职位的申请书http://127.0.0.1:3001/users?name=Slava. 服务器响应“需要名称”。方法getUsers正常工作。数据库工作正常,服务器。js也能工作。我在这里寻找类似的答案,但没有合适的答案。有一些非常古老的答案,但它们并不相关。 这是一项请求:http://127.0.0.1:3001/users?name=bob (我用邮递员送信)
我在chrome控制台中写了这样的表达式: 它返回:
问题内容: 我试图制作一个延迟X毫秒执行异步函数的函数。 为了演示的目的,以下是异步函数,该函数采用URL: 目的 我在这里的目标是要有一个函数,它将接受X 的参数,然后每隔X ms调用一次,直到不再有其他参数为止。 基本上,我希望每次调用都用X ms分隔。 例如,假设我连续打电话20次。通常,这20个呼叫将立即进行。我想要的是确保20个呼叫之间都存在Xms的延迟。 暂定 解决这个问题的想法是建立
考虑以下代码: Typescript引发错误:。 但是如果我正在进行基于浏览器的开发,使用感觉是错误的。哪个是正确的类型定义或返回类型,可以让在不求助于声明的情况下工作?