我在spring boot app中使用resttempalate进行POST调用时遇到400错误。
这是我的代码:
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.add("Accept", "application/json");
request = "{ json : string }";
url = "http://localhost:9082/restws";
HttpEntity<String> entity = new HttpEntity<String>(request , headers);
return restTemplate.postForObject(url, entity, String.class);
堆栈追踪:
org.springframework.web.client.HttpClientErrorException:400 在org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:63) 在org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:700) 在org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:653) 在org.springframework.web.client.RestTemplate.execute(RestTemplate.java:613) 在org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:380) 在com.envision.application.web.rest.EngineResource.getModelParams(EngineResource.java:109) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) 在org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
2018-06-05 14:26:58.064 ERROR 42744 --- [XNIO-13 task-38] c.e.a.w.rest.errors.ExceptionTranslator:发生意外错误:400 2018-06-05 14:26:58.069 WARN 42744 --- [XNIO-13 task-38] .m.m.a.ExceptionHandlerExceptionResolver:由Handler执行引起的已解决异常:org.springframework.web.client.HttpClientErrorException:400
答案 0 :(得分:0)
它不是一个有效的json。用双引号括起键和值。
答案 1 :(得分:0)
您正在形成一个错误的请求,尝试更改请求正文。
String request = " { \"json\" : \"string\" }" ;
答案 2 :(得分:0)
现在有效。静止端点的JSON解析器需要围绕字段名称的双引号。谢谢大家帮忙。