如何使用改进获取响应作为对象将发布数据json发送到api
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用改进获取响应作为对象将发布数据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数据发送到服务器?
答案
您需要将Call<User> login(@Body User user);
替换为您的响应模型类,如Call<YOURRESPONSEMODEL> login(@Body User user);
,并根据更改您的call function
。要创建响应模型,请使用邮递员的响应并创建模型here
另一答案
首先,创建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());
}
});
以上是关于如何使用改进获取响应作为对象将发布数据json发送到api的主要内容,如果未能解决你的问题,请参考以下文章
如何将java json对象数据发送到android api请求