gpt4 book ai didi

java - Spring RestTemplate 抛出 InvalidMediaTypeException

转载 作者:行者123 更新时间:2023-12-01 09:28:24 25 4
gpt4 key购买 nike

我是 Spring Rest 的新手,我尝试从 Web 服务获取 xml,但在执行以下代码后它抛出 InvalidMediaTypeException:

restTemplate.getForObject("http://www.dictionaryapi.com/api/v1/references/learners/xml/{word}?key={key}",String.class,uriVariables);

WebService 返回 xml 文档,我首先认为这可能是问题所在,但另一个 WebService(该 url 不包含“xml”作为路径)效果很好。

堆栈跟踪:

Exception in thread "main" org.springframework.http.InvalidMediaTypeException: Invalid mime type "xml": does not contain '/'
at org.springframework.http.MediaType.parseMediaType(MediaType.java:385)
at org.springframework.http.HttpHeaders.getContentType(HttpHeaders.java:722)
at org.springframework.web.client.HttpMessageConverterExtractor.getContentType(HttpMessageConverterExtractor.java:114)
at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:85)
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:835)
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:819)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:599)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:557)
at org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:384)

那么我如何与 URL 路径中包含单词“xml”的 WebServices 交换数据。

最佳答案

这里的问题是服务正在返回对您的查询的响应,其中包含困惑的 Content-Type,特别是 xml。您需要配置 Spring 来处理这个问题,因为理智的人(和服务)会使用 application/xml 来代替。查看this自定义 MediaType 设置的答案。

关于java - Spring RestTemplate 抛出 InvalidMediaTypeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39657806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com