Получение неверного запроса при использовании шаблона отдыха - PullRequest
0 голосов
/ 08 июня 2018

Я получаю ошибку неверного запроса при попытке использовать RestTemplate.Я пробовал оба метода getForObject() и exchange(), но ни один из них не сработал, поэтому я что-то не так делаю?

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());

MultiValueMap<String, String> requestBody = new LinkedMultiValueMap<>();
requestBody.add("param1", "value1");
requestBody.add("param2", "true");

RestTemplate restTemplate = new RestTemplate();
return restTemplate.exchange(API_URI, HttpMethod.POST,
                    new HttpEntity<>(requestBody, headers), String.class);

трассировка стека: (имена hidded api)

2018-06-08 14:59:20 ОШИБКА ErrorPageFilter: 176 - Пересылка на страницу ошибки из запроса [/ api / cal / dep] из-за исключительной ситуации [400 Bad Request] org.springframework.web.client.HttpClientErrorException: 400 BadЗапрос в org.springframework.web.client.DefaultResponseErrorHandler.handleError (DefaultResponseErrorHandler.java:63) по адресу org.springframework.web.client.RestTemplate.handleResponse (RestTemplate.jrame.wef.web.web.pr) .7doExecute (RestTemplate.java:653) в org.springframework.web.client.RestTemplate.execute (RestTemplate.java:613) в org.springframework.web.client.RestTemplate.exchange (RestTemplate.java:5dd) в dd.vack.service.tar.gett (tar.java:51) в ddz.dd.vack.service.tar.calc (tar.java:57) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.lang.reflect.Method.invoke (Method.java:498) org.su.su.InvocableHandlerMethod.(ServletInvocableHandlerMethod.java:97) по адресу org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod (RequestMappingHandlerAdapter.java:827.handle(RequestMappingHandlerAdapter.java:738) в org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle (AbstractHandlerMethodAdapter.java:85) в org.springframework.web.servlet.DispaterSlet.doDispatch (DispatcherServlet.java:967) в org.springframework.web.servlet.DispatcherServlet.doService (DispatcherServlet.java:901) в org.springframework.web.servlet..springframework.web.servlet.FrameworkServlet.doPost (FrameworkServlet.java:872) в javax.servlet.http.HttpServlet.service (HttpServlet.java:661) в org.springframework.web.servlet.ralet.vlet: 846) в javax.servlet.http.HttpServlet.service (HttpServlet.java:742) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:231) в org.apache.hain.Calina.doFilter (ApplicationFilterChain.java:166) в org.apache.tomcat.websocket.server.WsFilter.doFilter (WsFilter.java:52) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilg: 19 atjg:.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) в org.spрингфреймJava: 166) в org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:317) в org.springframework.security.web.access.intercept.FilterSecurityInterceptor.javake: org (12).springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter (FilterSecurityInterceptor.java:91)по адресу org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:331) по адресу org.springframework.security.web.access.ExceptionTranslationFilter.doFilter (ExceptionTranslationFilwork.pring)..FilterChainProxy.0springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter (SecurityContextHolderAwareRequestFilter.java:170) в org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:331) в org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter (RequestCacheAwareFilter.java:63) в org.springframework.security.webil.ProhaFirFirFirFirFеFirCF:331) по адресу org.springframework.web.filter.CorsFilter.doFilterInternal (CorsFilter.java:96) по адресу org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:10fil.wef.serg.wef.serg.wef.serg.wef.serg.wef.serg.wef.serg.service.wef.serg.wef.serser.wef.serg.serser.wef.serg.wef.serser.wef.serg.serg.$ VirtualFilterChain.doFilter (FilterChainProxy.java:331) в org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter (OAuth2AuthenticationProcessingFilter.jha.java: 331) в org.springframework.security.web.authentication.logout.LogoutFilter.doFilter (LogoutFilter.java:116) в org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:331) по адресу org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal (HeaderWriterFilter.java:64) по адресу org.springframework.web.filter.OncePerRequestFilter:er.security.web.FilterChainProxy..doFilter (FilterChainProxy.java:331) при org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal (WebAsyncManagerIntegrationFilter.java:56) в org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java: 107) в org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:331) в org.springframework.security.web.FilterChainProxy.doFilterInternal (FilterChainProxy.java:214) в org.springframework.security.web.FilterChainProxy.doFilter (FilterChainProxy.java:177) в org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate (Delegingj).filter.DelegatingFilterProxy.) в org.springframework.web.filter.RequestContextFilter.doFilterInternal (RequestContextFilter.java:99) в org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:10)по адресу org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) по адресу org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166.(HttpPutFormContentFilter.java:105) по адресу org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:107) по адресу org.apache.catalina.core.ApplicationFilterChain.ap.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) в org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal (HiddenHttpMethodFilter.java:107) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) в org.springframework.web.filter.CharacterEncodingFilter.Java: 193) в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) в org.springframework.boot.web.support.ErrorPageFilter.doFilter (ErrorPageFilter.jworkmepr)).web.support.ErrorPageFilter.access $ 000 (ErrorPageFilter.java:59) при org.springframework.boot.web.support.ErrorPageFilter $ 1.doFilterInternal (ErrorPageFilter.java:90) при org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) в org.springframework.boot.web.support.ErrorPageFilter.doFilter (ErrorPageFilter.java:108) в org.apache.catalina.core.ApplicationFilterChain.internalFilter.hag.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) в org.apache.logging.log4j.web.Log4jServletFilter.doFilter (Log4jServletFilter.java:71) в org.apache.catalina.core.ApplicationFilterF (в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) в org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:198) в org.apache.kevetatatataina(StandardContextValve.java:96) в org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:504) в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.javag140).catalina.valves.87) в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:342) в org.apache.coyote.http11.Http11Processor.service (Http11Processor.java:803) в org.apache.coyote.AbstractProcessorLight.process (AbstractProcessorLight.java:66) в org.apache.coyote.A$ ConnectionHandler.process (AbstractProtocol.java:790) в org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java:1459) в org.apache.tomcat.util.net.SocketProcessorBase.run (SocketProcessorBase).java: 49) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) в org.apache.om.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) в java.lang.Thread.run (Thread.java:748)

1 Ответ

0 голосов
/ 08 июня 2018

Можете ли вы попробовать удалить заголовок Accept, так как это по умолчанию json

headers.add("Accept", MediaType.APPLICATION_JSON.toString());

ИЛИ

попробуйте добавить заголовок accept, как показано ниже

headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));

И проверьте, чтообъект типа ответа, который вы упомянули как String.class, пожалуйста, перекрестная проверка

Можете ли вы попробовать изменить, как показано ниже

    headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
MultiValueMap<String, Object> requestBody = new LinkedMultiValueMap<>();
        requestBody.add("param1", "value1");
        requestBody.add("param2", true);Try this? 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...