RETROFIT2 POST请求响应返回null



i使用带有许多参数的retrofit2进行POST请求。呼叫成功完成,但response.body()等于NULL。我已经使用邮递员检查了相同参数的URL,而且效果很好,所以我真的认为这不是通话的问题,但是我相信我使用的接收回调的方法不正确(错误代码我从response.code()收到500(。任何帮助将受到极大的赞赏,谢谢。

发布接口:

public interface POSTApi {
  String BASE_URL = "someURL/";
  @POST("like")
  Call<Resultlike> post(@Body Resultlike login);
}

呼叫

private Retrofit retrofit = new Retrofit.Builder().baseUrl(POSTApi.BASE_URL)
        .callbackExecutor(Executors.newSingleThreadExecutor())
        .addConverterFactory(GsonConverterFactory.create())
        .build();
POSTApi apiInterface = retrofit.create(POSTApi.class);
final Resultlike resultlike = new Resultlike("param1","param2","param3","param4");
    Call<Resultlike> call = apiInterface.post(resultlike);
    call.enqueue(new Callback<Resultlike>() {
        @Override
        public void onResponse(Call<Resultlike> call, Response<Resultlike> response) {
            Resultlike logresponse = (Resultlike) response.body();
            Log.e("TAG", String.valueOf(response.code()));
            if(!response.isSuccessful()) {
                Log.e("TAG", "NOT SUCCESSFUL");
            }

            Log.e("TAG", logresponse.getResult().getMessage());
            Log.e("TAG", logresponse.getResult().getStatus());
        }
        @Override
        public void onFailure(Call<Resultlike> call, Throwable t) {
            Log.e("TAG", "FAILURE");
        }
    });

结果般的对象类:

public class Resultlike {
// These 4 are parameters that are passed in to make the POST request
@SerializedName("uid")
public String uid;
@SerializedName("contentId")
public String contentId;
@SerializedName("like")
public String like;
@SerializedName("timestamp")
public String timestamp;
// This is supposed to be receiving the callback of the data
@SerializedName("result")
public DataLike result;
public Resultlike(String uid, String contentId, String like, String timestamp) {
    this.uid = uid;
    this.contentId = contentId;
    this.like = like;
    this.timestamp = timestamp;
}

public DataLike getResult() { return result; }
public void setResult(DataLike setData) { result = setData; }
public String getUid() { return uid; }
public String getTimestamp() { return timestamp; }
public String getLike() { return like; }
public String getContentId() { return contentId; }
public void setUid(String uid) { this.uid = uid; }
public void setTimestamp(String timestamp) { this.timestamp = timestamp; }
public void setLike(String like) { this.like = like; }
public void setContentId(String contentId) { this.contentId = contentId; }

}

数据型对象类:

public class DataLike {
    @SerializedName("status")
    @Expose
    private String status = "";
    @SerializedName("message")
    @Expose
    private String message = "";
    public String getMessage() { return message; }
    public String getStatus() { return status; }
    public void setMessage(String message) { this.message = message; }
    public void setStatus(String status) { this.status = status; }
}

JSON数据我期望从回调中:

{
  "result": {
    "status": "some string",
    "message": "some string"
  }
}

发生崩溃之前的相关日志:

// 500 is the response code resulting from response.code()
E/TAG: 500
E/TAG: NOT SUCCESSFUL

Web服务响应代码为500,因此表示服务器端错误,因此,请告知Web-End Side Developer从他们的身边检查错误。

最新更新