- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 spring android rest 模板
并尝试将 JSON 响应转换为 java 类,如图所示 here .
这是我尝试完成这项工作的代码 fragment :
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJacksonHttpMessageConverter());
//I have already tried to manually setting converters with no luck
//List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
//messageConverters.add(new MappingJacksonHttpMessageConverter());
//messageConverters.add(new FormHttpMessageConverter());
//messageConverters.add(new StringHttpMessageConverter());
//restTemplate.setMessageConverters(messageConverters);
Result result = restTemplate.getForObject(url, Result.class);
我想我已经按照文档中的要求完成了所有要求:
url
确实返回一个 JSON 对象。Result
类是一个包含所有必填字段的 POJO基本上在我的类路径中有 Jackson 依赖项
必须足以让它像它所说的那样工作:
The MappingJacksonHttpMessageConverter is conditionally loaded when you create a new RestTemplate instance. If the Jackson dependencies are found in your classpath, the message converter will be automatically added and available for use in REST operations.
那么我在这里缺少什么,我做错了什么?
谢谢
可以在这里找到完整的异常:
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): FATAL EXCEPTION: main
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): java.lang.IllegalStateException: Could not execute method of the activity
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at android.view.View$1.onClick(View.java:2083)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at android.view.View.performClick(View.java:2421)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at android.view.View$PerformClick.run(View.java:8869)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at android.os.Handler.handleCallback(Handler.java:587)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at android.os.Handler.dispatchMessage(Handler.java:92)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at android.os.Looper.loop(Looper.java:143)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at android.app.ActivityThread.main(ActivityThread.java:5068)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at java.lang.reflect.Method.invokeNative(Native Method)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at java.lang.reflect.Method.invoke(Method.java:521)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at dalvik.system.NativeStart.main(Native Method)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): Caused by: java.lang.reflect.InvocationTargetException
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at xxx.SamplePageActivity.doRest(SamplePageActivity.java:83)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at java.lang.reflect.Method.invokeNative(Native Method)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at java.lang.reflect.Method.invoke(Method.java:521)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at android.view.View$1.onClick(View.java:2078)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): ... 11 more
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): Caused by: org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [[Lxxx.SamplePageActivity$Result;] and content type [application/json;charset=UTF-8]
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:77)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:449)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:404)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:202)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): ... 15 more
最佳答案
我从未在 Android 上做过任何事情,但我知道转换者对 Content-Type 很挑剔。为了让 Jackson 工作,消息正文需要有 'Content-Type: application/json'。尝试检查响应中的所有 header 。
关于机器人 RestClientException : no suitable HttpMessageConverter found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5724697/
我在 Spring 应用程序中使用 RestTemplate 与 API 交互。我正在执行 GET 请求并期待一些 JSON 响应。执行此操作的代码如下: HttpEntity> requestEnt
我通过向第 3 方进行 RESTFul 调用(Spring RestTemplate)来处理一些请求。在代码中,我试图处理以下情况。 catch (final Exception ex) {
我正在使用 spring android rest 模板 并尝试将 JSON 响应转换为 java 类,如图所示 here . 这是我尝试完成这项工作的代码 fragment : RestTe
在测试 RestClient-Implementation 时,我想模拟一个 RestClientException,该实现 f.e. 中的某些 RestTemplate-methods 可能会抛出该
我有一个 Rest Web 服务,我正在使用以下 android 代码中的此 Web 服务。 Web 服务工作正常,我已经测试过了。 但是在下面的代码中我得到了错误 String url ="ht
RestTemplate 的方法如postForEntity() 抛出RestClientException。我想从 catch block 中的异常对象中提取 HTTP 状态代码和响应正文。我该怎么
使用 curl 命令: curl -u 591bf65f50057469f10b5fd9:0cf17f9b03d056ds0e11e48497e506a2 https://backend.tdk.co
在我的 Restful Web 服务中,如果出现错误请求 (5xx) 或 4xx 响应代码,我会在响应中写入自定义 header “x-app-err-id”。 在客户端,我使用 RestTempla
我收到的 http 请求响应格式如下: { "total": 1, "start": 0, "count": 1, "data": [ { "id": 1
RestTemplate 的方法(例如 postForEntity())会抛出 RestClientException。我想从 catch block 中的异常对象中提取 HTTP 状态代码和响应正文
我想开发一个小功能,使用 Springs RestTemplates 将 ISIN 转换为符号。我遇到了一个错误,其中指出以下内容: java.lang.IllegalStateException:
我正在创建一个restful API,它将使用来自服务器的json。但我遇到了以下异常: org.springframework.web.client.RestClientException: Cou
我正在编写一个客户端来使用 RESTful 服务。我需要以键值对的形式发送请求,他们建议我为此使用 Map。我调用的 RESTful 服务只接受 JSON,我的客户端将使用 Java。它实际上将成为现
我有一个带有此端点的 REST API: @GET @Path("rol/{codEmp}") @Produces(MediaType.TEXT_PLAIN) public String getRol
我正在使用 Androd resttemplate 和 MappingJacksonHttpMessageConverter。对于某些 url 交换效果很好,但有一个会导致异常。RestTemplat
根据我的经验,在调用 Spring 的 RestTemplate#exchange 并随后收到“404 - Not Found”响应后,会抛出 RestClientException 而不是返回 Re
我在构建简单应用程序时收到此错误消息 从以下位置获取用户信息:http://localhost:9999/uaa/user 无法获取用户详细信息:类 org.springframework.web.c
使用 Rest 模板时,我在 org.springframework.web.client.RestClientException 中收到以下错误:No HttpMessageConverter fo
我正在尝试使用 Avro 架构向我的经纪人发送消息,但“我总是收到错误消息: 2020-02-01 11:24:37.189 [nioEventLoopGroup-4-1] ERROR Applica
response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); PrintWriter out
我是一名优秀的程序员,十分优秀!