【问题标题】:How to use multple @Path parameter in GET of retrofit如何在改造的 GET 中使用多个 @Path 参数
【发布时间】:2016-01-18 17:49:36
【问题描述】:

我想在我的 android 项目的改造 get 方法中传递多个参数运行时间。以下是我的网址

http://myservice.com/home/MobileAPI/MobAPI.svc/LoginCriteria/26/address/1/permenant

这里我使用的基本 URL 为:http://myservice.com/home/MobileAPI/MobAPI.svc

我想在运行时使用 Retrofit 在我的 GET 方法中传递“地址”和“永久”。

我正在尝试:

@GET("LoginCriteria/26/{address}/1/{permenant}")
void getDetails(@Path("address") String address,@Path("permenant") String permenant, Callback<AddressParser> parserCallback);

这是我的 JSON 响应:

{
   "response": {
       "type": "success",
       "data": {
       "datalist": {
           "total": "20",
           "user": [
               {
                   "empcode": "",
                   "companycode": "",
                   "companyname": ""
               },
                                   {
                   "empcode": "",
                   "companycode": "",
                   "companyname": ""
               }
                                   ]
                                           }
                           }
                           }
}

我得到以下执行:

内部失败 com.fasterxml.jackson.databind.JsonMappingException: 无法反序列化 java.util.ArrayList 的实例 START_OBJECT 令牌。

如果我在运行时只传递一个参数,它就可以工作。它不适用于多个@Path 参数。任何建议将不胜感激。

【问题讨论】:

  • 你能展示你的 AddressParser 类吗

标签: java android retrofit


【解决方案1】:

我猜这个问题与你的路径参数无关。 我确信这与您的请求的响应有某种关系。

启用改造登录并检查调用的 url 和给定的响应。

异常表示 jackson 无法解析您的请求的响应。

【讨论】:

  • 我也收到了回复,它是有效的。但它会失败的改造方法。如果我有硬编码参数,那么它可以完美运行。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-16
  • 2020-06-14
相关资源
最近更新 更多