Получение 400 для Spring RestTemplate POST

Sandeep спросил: 12 мая 2018 в 05:09 в: java

Я получаю ошибку 400 при использовании resttempalate для вызова POST в весеннем загрузочном приложении.

Вот мой код:

     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: 400at 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) на sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) на sun.reflect. NativeMethodAccessorImpl.invoke (Неизвестный источник) на sun.reflect.DelegatingMethodAccessorImpl.invoke (Неизвестный источник) в java.lang.reflect.Method.invoke (Неизвестный источник) в org.springframework.aop .support.AopUtils.invokeJoinpointUsingReflection (AopUtils.java:333)

2018-06-05 14: 26: 58.064 ОШИБКА 42744 --- [XNIO-13 task-38] ceawrest.errors.ExceptionTranslator: Произошла непредвиденная ошибка: 4002018-06-05 14: 26: 58.069 WARN 42744 --- [XNIO-13 task-38] .mmaExceptionHandlerExceptionResolver: Исправлено исключение, вызванное выполнением обработчика: org.springframework.web.client.HttpClientErrorException: 400

3 ответа

gagan singh ответил: 12 мая 2018 в 05:11

это недействительный json. заключить ключ и значение в двойные кавычки.

Sandeep ответил: 12 мая 2018 в 06:50
Я опубликовал фактический json. Я пробовал с действительным json.
ElChava ответил: 12 мая 2018 в 05:14

Вы формируете неверный запрос, попробуйте изменить тело запроса.

String request = " {  \"json\" : \"string\" }" ;
Sandeep ответил: 12 мая 2018 в 06:50
Я опубликовал фактический json. Я пробовал с действительным json.
ElChava ответил: 12 мая 2018 в 08:38
Можете ли вы поделиться спецификацией службы, которую вы пытаетесь использовать?
Sandeep ответил: 13 мая 2018 в 12:17

Теперь он работает. Анализатор JSON в конечной точке покоя нуждался в двойных кавычках вокруг имен полей. Спасибо всем за помощь.