3 回答

TA貢獻1799條經(jīng)驗 獲得超9個贊
Retrofit 是類型安全庫。這意味著它只等待特定(預(yù)定義)類型的對象。如果服務(wù)器發(fā)送其他內(nèi)容 - 它會因錯誤而崩潰。這是你的情況。只需檢查原始服務(wù)器響應(yīng),您就會發(fā)現(xiàn)有什么問題。

TA貢獻1815條經(jīng)驗 獲得超10個贊
我認(rèn)為當(dāng)沒有數(shù)據(jù)返回時問題會返回字符串。后端通常會出現(xiàn)此類錯誤。這個錯誤以前發(fā)生在我身上。當(dāng)沒有數(shù)據(jù)可用時,您應(yīng)該檢查響應(yīng) json

TA貢獻1995條經(jīng)驗 獲得超2個贊
嘗試更改您的 API 調(diào)用
從
@POST("api/log")
Call<SocketPingResponse> getSocketPingLog(@Header("jwt") String jwt, @Body SocketPingBodySendData socketPingBodySendData);
到
@POST("api/log")
Call<String> getSocketPingLog(@Header("jwt") String jwt, @Body SocketPingBodySendData socketPingBodySendData);
pingEntityList.addAll(socketPingDatabase.socketPingDao().getSocketPingEntityList());
SocketPingBodySendData pingBodySendData = new SocketPingBodySendData();
pingBodySendData.setAuction_id(auctionID);
pingBodySendData.setData(pingEntityList);
Toast.makeText(context, ""+pingEntityList.size(), Toast.LENGTH_SHORT).show();
Call<String> pingResponseCall = apis.getSocketPingLog(jwtToken, pingBodySendData);
pingResponseCall.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
if (response.body() != null) {
//Convert here your string response to Other POJO format
}
}
@Override
public void onFailure(Call<String> call, Throwable t) {
Log.e("socketLogResponse", "Err : " + t.toString());
}
});
添加回答
舉報