我想使用烂番茄 API 来搜索电影。
我有一个使用 TMDB 而不是烂番茄的等效完全工作应用程序。
我使用 JBoss RESTEasy 提供的标准 JAX-RS 客户端和 RESTEasy Jackson2 提供程序(当然我不能发布我的 API 密钥):
public MovieSearchResults search(String query) {
return client
.target("http://api.rottentomatoes.com/api/public/v1.0/movies.json")
.queryParam("apikey", API_KEY)
.queryParam("q", query)
.request(MediaType.APPLICATION_JSON)
.get(MovieSearchResults.class);
}
MovieSearchResults 类只是一个 JAXB 注释类,用于绑定 JSON。
最直接的问题是烂番茄 API 正在为其所有 JSON 响应返回内容类型为“text/javascript”的响应。他们已经表现出不愿意改变他们的服务,即使这显然是返回 JSON 时设置的错误内容类型,所以现在就是这样。
我调用服务时遇到的异常是:
Exception in thread "main"
javax.ws.rs.client.ResponseProcessingException:
javax.ws.rs.ProcessingException:
Unable to find a MessageBodyReader of
content-type text/javascript;charset=ISO-8859-1 and type class MovieSearchResults
所以问题是:是否有一种简单的方法来获取/配置标准 JAX-RS 客户端以将返回的“text/javascript”内容类型识别为“application/json”?