如何在Retrofit的GET请求中使用多个@Path参数

5

我想在我的安卓项目中使用Retrofit的get方法传递多个运行时参数。以下是我的URL:

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

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

我想在运行时使用Retrofit传递'address'和'permanent'参数到我的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: 无法将 START_OBJECT 标记反序列化为 java.util.ArrayList 实例。

如果我只在运行时传递一个参数,它可以工作。但是当有多个 @Path 参数时它就不能工作。感谢您的任何建议。


你能展示一下你的AddressParser类吗? - Soham
1个回答

0

我猜问题与您的路径参数无关。我确定它与您的请求响应有关。

在Retrofit上启用日志记录,检查调用的URL和给定的响应。

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


我已经成功获取到响应并且它是有效的。但是它却进入了Retrofit的失败方法。如果我硬编码参数,那么它就可以完美地工作。谢谢。 - androidDev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接