簡體   English   中英

Resttemplate url 響應給出無效的 mime 類型

[英]Resttemplate url response giving Invalid mime type

我正在調用 url,如下所示,但在響應中我得到了 Invalid mime type "JSON; charset=utf-8": does not contain '/'

   @RequestMapping("/")
       public String hello(){

           HttpHeaders headers = new HttpHeaders();
           UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://XXXX/Query.ashx");
           HttpEntity<?> entity = new HttpEntity<>(headers);
           RestTemplate restTemplate = new RestTemplate();
           HttpEntity<String> response = restTemplate.exchange(
                   builder.toUriString(),
                   HttpMethod.GET,
                   entity,
                   String.class);

           return  response.getBody() ;
       }

從 postman 我檢查了 api 的響應標頭,我們得到 Content-Type:JSON; charset=utf-8,我在這里。 如何處理?,我們只想要簡單的 json 響應。

使用“@RestController”注解

@Himanshu 請提供完整的 class 信息,其中包含 class 級別注釋。 除了這個問題之外,您在調用顯示的 api 或 restTemplate.exchange 時是否遇到異常? . 使用完整的堆棧跟蹤更新您的答案以找到它。

我更喜歡使用默認為Json響應的 @GetMapping。 請嘗試一下

您可以使用 RestTemplate 攔截器完全控制請求/響應參數:

public class MimeInterceptor implements ClientHttpRequestInterceptor {

    @Override
    public ClientHttpResponse intercept(final HttpRequest request, final byte[] body,
            final ClientHttpRequestExecution execution) throws IOException {
        request.getHeaders().add(HttpHeaders.CONTENT_TYPE, MediaType.<what you want>);
        ClientHttpResponse response = execution.execute(request, body);
        response.getHeaders().add(HttpHeaders.CONTENT_TYPE, MediaType.<what you want>);
        return response;
    }
}

在代碼中:

...
RestTemplate restTemplate = new RestTemplate();
restTemplate.setInterceptors(List.of(new MimeInterceptor());
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM