ヘッダー付きのGETリクエストを送信する必要があります:Content-Type: application/camiant-msr-v2.0+xml
。私は、サーバーからのXML応答を期待しています。私は郵便配達員とのリクエストとレスポンスをテストしました。しかし、私が春にRestTemplate
でそれをしようとすると、私はいつも400の悪い要求を受け取ります。 spring
から例外がある:Resttemplateカスタムヘッダーを使用したGETリクエスト
Jul 09, 2016 12:53:38 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [dispatcherServlet] in context with path [/smp] threw exception [Request processing failed; nested exception is org.springframework.web.client.HttpClientErrorException: 400 Bad Request] with root cause
org.springframework.web.client.HttpClientErrorException: 400 Bad Request
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91)
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:641)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:597)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:557)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:475)
マイコード:
MultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>();
headers.add("Content-Type", "application/camiant-msr-v2.0+xml");
HttpEntity<?> entity = new HttpEntity<Object>(headers);
log.debug("request headers: " + entity.getHeaders());
ResponseEntity<String> response = restTemplate.exchange(queryUrl, HttpMethod.GET, entity, String.class);
デバッグメッセージが正しいと思われる{Content-Type=[application/camiant-msr-v2.0+xml]}
としてヘッダを示します。私の要求に何が間違っているのか、そしてワイヤでデバッグする要求を見る方法があるのだろうか。
GETを送信する場合、なぜあなたは 'Content-Type'ヘッダを提供していますか?あなたは代わりにそれを 'Accept'にしますか? –
@ nicholas.hauschildサーバは、そのヘッダを提供することによってのみ、XML応答を得ることができると期待しているからです。 –
@ nicholas.hauschild私はあなたが何を意味しているかちょっと理解していますが、API仕様によれば、Postmanもうまくいきます。 –