android - android:retrofit2 总是返回空体
问题描述
我可以调用 api 并且也可以在后端插入记录。但问题是,如果我的 api 返回带有 201 状态代码的 json 结果,则这些 json 结果不会显示在改造的响应正文中。
在下面的方法中,我得到 NULL response.body()
。请帮我解决我的问题
我的片段
GetPostDocumentDataService apiInterfaceDocument;
....
....
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
RetrofitInstance.getRetrofitInstanceDocument().create(GetPostDocumentDataService.class);
.....
.....
call1.enqueue(new Callback<UsersResponseObj>() {
@Override
public void onResponse(Call<UsersResponseObj> call, Response<UsersResponseObj> response) {
Log.e("error", "-----------------" + response.body());// this NULL always , WHY?
}
@Override
public void onFailure(Call<UsersResponseObj> call, Throwable t) {
}
});
GetPostDocumentDataService.java
public interface GetPostDocumentDataService {
@FormUrlEncoded
@POST("/User/users")
@Headers("Content-Type: application/x-www-form-urlencoded")
Call<UsersResponseObj> addUser(@Field("googleUserId") String googleUserId, @Field("fullName") String fullName,
@Field("emailAddress") String emailAddress, @Field("profilePictureUrl") String profilePictureUrl);
}
RetrofitInstance.java
public class RetrofitInstance {
private static final String DOCUMENT_BASE_URL = "http://fineinfo.mysite.com";//"http://192.168.1.102/webservicetraffic/";//
private static Retrofit retrofit;
private static Retrofit retrofit1;
private static Retrofit documentRetrofit;
/**
* Create an instance of Document Retrofit object
*/
public static Retrofit getRetrofitInstanceDocument() {
if (documentRetrofit == null) {
documentRetrofit = new retrofit2.Retrofit.Builder()
.baseUrl(DOCUMENT_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return documentRetrofit;
}
}
用户响应对象.java
import com.google.gson.annotations.SerializedName;
public class UsersResponseObj {
@SerializedName("status")
private Boolean status;
@SerializedName("message")
private String message;
public Boolean getStatus() {
return status;
}
public void setStatus(Boolean status) {
this.status = status;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
成功的 api 响应
状态码:201- 已创建
{
"status": true,
"message": "User added"
}
解决方案
推荐阅读
- reactjs - 如何在 Nextjs 布局中使用上下文挂钩
- javascript - 在给定时间加入 Discord 语音聊天
- python - Python Flask {GET POST} 请求 Webhook 如何监听公共地址 URL
- c# - 如何为 .net 核心应用程序保留互联网带宽
- php - Laravel 雄辩的 where not in where 条件不工作
- ios - 列表中使用的多个 NavigationLink 在 SwiftUI 中不起作用
- python - “Player2”无法与“player”做同样的事情
- angular - 离子无效包名__ngcc_entry_points__.json
- python-3.x - uwsgi 协议——HTTP POST 请求正文的 python 代码
- kubernetes - 在 k8s 上启用服务拓扑