android - 如何使用改造获取响应作为对象将发布数据 json 发送到 api
问题描述
邮递员说明:
界面:
public interface PostService {
@Headers("Content-Type: application/json")
@FormUrlEncoded
@POST("/user/login")
Call<User> login(@Body User user);
}
调用函数:
User user = new User("student", "student@gmail.com");
Call<User> noticeList = RetrofitAPI.getService().login(user);
noticeList.enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
Log.i("postdata", "v =" + response.body().getId());
}
@Override
public void onFailure(Call<User> call, Throwable throwable) {
Toast.makeText(ActivityLogin.this, "Server taking time try refreshing", Toast.LENGTH_SHORT).show();
}
});
我们如何将 json post 数据发送到服务器?
解决方案
首先,创建 Pojo 类:
public class SubscriptionResponseModel {
@SerializedName("mNo")
@Expose
private String mNo;
@SerializedName("pId")
@Expose
private String pId;
@SerializedName("status")
@Expose
private String status;
public String getPId() {
return pId;
}
public void setPId(String pId) {
this.pId = pId;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
然后,创建接口:
@POST("subs?")
@FormUrlEncoded
Call<SubscriptionResponseModel> setSubs(@Field("pId") String pId,
@Field("mNo") String mNo,
@Field("status") String status);
获取改造实例:
private static Retrofit getSubsRetrofitInstance() {
return new Retrofit.Builder()
.baseUrl(GlobalVar.BASE_URL)
.addConverterFactory(GsonConverterFactory.create()).build();
}
在getApiService
:
public static ApiService getSubsApiService() {
return getSubsRetrofitInstance().create(ApiService.class);
}
现在,调用函数:
ApiService apiService = getSubsApiService();
Call<SubscriptionResponseModel> subcriptionResponse = apiService.setSubs("1", "1", "y");
subcriptionResponse.enqueue(new Callback<SubscriptionResponseModel>() {
@Override
public void onResponse(Call<SubscriptionResponseModel> call, Response<SubscriptionResponseModel> response) {
if (response.isSuccessful()) {
/////print success message
}
}
@Override
public void onFailure(Call<SubscriptionResponseModel> call, Throwable t) {
Log.d("error", t.getMessage());
}
});
推荐阅读
- html - 为什么说浮动元素的显示属性是块级的?
- objective-c - 带有异步调用的空 UITableViewController
- python - 将基于空白行的文件部分反转为拆分
- bash - 如何识别首先在 docker 中创建的图像?这些是相同的图像,但 dangling=true
- bootstrap-4 - Angular Bootstrap 按钮大小
- javascript - Firebase 推送通知 click_action
- c# - 创建空文件夹结构的最简洁方法
- android - how to retrieve data from fire base and assign to a string
- php - 如何在 wordpress 中添加/更改页脚作为插件功能?
- c# - 将属性从基类复制到派生类,而无需在 C# 中使用反射手动映射