问题描述
在我基于 Java 的 Android 应用程序中,我必须调用 POST API 以保存用户数据。它接受以下输入参数: RequestBody。然后给出以下输出:ResponseBody。如何使用 Retrofit 执行此操作? 谢谢
解决方法
Retrofit 的重点是发送对象而不是文本正文。 来自官方文档
@POST("users/new")
Call<User> createUser(@Body User user);
然后使用 Retrofit 接口实例化您的服务,并使用接口函数执行调用
,你可以创建一个这样的类:
class Parameters{
User user;
class User {
String username;
String fullname;
//more fields,getters and setters..
}
// getter and setter for user
}
然后通过传递一个对象来使用改造 POST :
@Headers("Content-Type:plain/text; charset=utf-8")
@POST("/postuser")
Call<Response> postData(@Body Parameters params);
Response 对象有一个 body() 成员,其中包含您预期的响应,而女巫反过来也可以包装在一个对象中:
class MyResponse{
String status;
String message;
}
所以你可以改变你的电话如下:
@Headers("Content-Type:plain/text; charset=utf-8")
@POST("/postuser")
Call<MyResponse> postData(@Body Parameters params);