我需要使用 retrofit2 在 GET 请求的正文中发送类型为 User[]
的数组。这是最终有效载荷必须看起来的样子:
body: {
"data_id": 1,
"data_provider": "string_value",
"users": [
{
user_id: 1,
name: 'name'
},
{
user_id: 1,
name: 'name'
},
...
]
}
当前的 API 实现如下所示:
@GET("api/users/submit.json")
Call<UserData> submitData(@Query("data_id") int data_id, @Query("data_provider") String data_provider, @Query("users[]") User[] users);
数组列表代码:
//Converting the ArrayList<User> usersList to an array
User[] userArray = usersList.toArray(new User[0]);
//The userArray is passed to the retrofit API along with the other request values (data_id, data_provider)
在记录改造请求时,data_id
和 data_provider
被正确发送,但 User 数组除外。用户数组如下所示:
api/users/submit.json?data_id=1&data_provider=test&users[]=com.testapp.models.User@7d57487
如何在 GET 请求正文中发送类型为 User
的数组?
最佳答案
您可以使用@Body 注解在请求正文中发送用户对象
大致是这样的:
你的用户模型
class User {
}
存储用户列表的用户类
class RequestBody {
int data_id;
String data_provider;
List<User> users;
}
@POST("api/users/submit.json")
Call<UserData> submitData(@Body RequestBody requestbody);
您可以在此处详细了解它:
https://futurestud.io/tutorials/retrofit-send-objects-in-request-body
关于android - Retrofit2 - 在 GET 请求中发送类型 T 的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44896809/