【发布时间】:2016-09-23 09:51:57
【问题描述】:
我是 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 交换数据。
【问题讨论】:
-
我认为,但我可能错了,你得到的堆栈不是由URI中的“xml”引起的,我们可以看到“webService”方法吗?
-
突然,它是第三方WebService,所以如果我在dictionaryapi.com/api/v1/references/learners/xml/…上发出请求,我会收到这个结果,例如“thomas-bayer.com/sqlrest/CUSTOMER”上的请求是有效的。
-
url 参数中的 xml 可能不是这里的问题。您在 uri 变量中传递的服务或数据应该有问题
-
我找到了答案,这是“媒体类型”中的错误。此 3-d 方 WebService 的提供者安装类型为“xml”,但安装类型为“application/xml”或“text/xml”。非常感谢您的所有回答。