我有一个请求和回应Json。当我提交请求时,它将在我的应用程序中显示响应。 Url显示邮递员请求和响应[1]:https://i.stack.imgur.com/UW4jo.png我尝试了下面的代码,但问题是我得到了正确的JSONObject响应但是在调试时光标进入onResponse方法的改造然后body显示null和500错误代码。但在邮递员工作一切都很好。我有这个问题丢了2天。请帮助我。
APIService
@Headers("Content-Type: application/json")
@POST("api/Conveyance/SubmitConveyanceRequest")
Call<List<ModelFileInsertID>> saveTravelRequestDetails(@Body JSONObject submitRequest);
调用api
public void btnOnClickSave() {
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put(AppConstants.SaveKeyData.KEY_REIMBURSEMENT_HDR_ID, "");
jsonObject.put(AppConstants.SaveKeyData.KEY_PROCESS_ID, 1);
jsonObject.put(AppConstants.SaveKeyData.KEY_INSTANCE_ID, "");
jsonObject.put(AppConstants.SaveKeyData.KEY_REQUEST_NO, requestNo);
jsonObject.put(AppConstants.SaveKeyData.KEY_RAISED_BY, raisedBy.getText().toString());
jsonObject.put(AppConstants.SaveKeyData.KEY_RAISED_DATE, "");
jsonObject.put(AppConstants.SaveKeyData.KEY_APPROVER, selectedItemText);
jsonObject.put(AppConstants.SaveKeyData.KEY_APPROVER_DATE, "");
jsonObject.put(AppConstants.SaveKeyData.KEY_TRAVEL_TOTAL_AMOUNT, textViewTotal.getText().toString());
jsonObject.put(AppConstants.SaveKeyData.KEY_STATUS, "");
jsonObject.put(AppConstants.SaveKeyData.KEY_IS_DEVIATED, "");
jsonObject.put(AppConstants.SaveKeyData.KEY_IS_DEVIATED_REASON, "");
jsonObject.put(AppConstants.SaveKeyData.KEY_PENDING_WITH, "");
jsonObject.put(AppConstants.SaveKeyData.KEY_RAISED_BY_NAME, "");
jsonObject.put(AppConstants.SaveKeyData.KEY_APPROVED_BY_NAME, "");
jsonObject.put(AppConstants.SaveKeyData.KEY_REMARK, remark.getText().toString());
jsonObject.put(AppConstants.SaveKeyData.KEY_APPROVER_REMARK, "");
jsonObject.put(AppConstants.SaveKeyData.KEY_PERFORMER, "");
jsonObject.put(AppConstants.SaveKeyData.KEY_POSTING_CODE, "");
jsonObject.put(AppConstants.SaveKeyData.KEY_STEP_ACTION, stepAction);
jsonObject.put(AppConstants.SaveKeyData.KEY_DETAILS, getAddDetails());
jsonObject.put(AppConstants.SaveKeyData.KEY_DOCUMENT_LIST, getFilePath());
jsonObject.put(AppConstants.SaveKeyData.KEY_AUDITTRAIL, getAuditTrailDetails());
} catch (JSONException e) {
e.printStackTrace();
}
if (Utility.getInstance().isNetworkConnected(getParent())) {
Call<List<ModelFileInsertID>> call = HDFCService.setSaveTravelRequestDetails().saveTravelRequestDetails(jsonObject);
call.enqueue(new Callback<List<ModelFileInsertID>>() {
@Override
public void onResponse(Call<List<ModelFileInsertID>> modelInsertID, Response<List<ModelFileInsertID>> response) {
AlertDialog.Builder mAlertDialog = new AlertDialog.Builder(getActivity());
try {
List<ModelFileInsertID> insertIDs = response.body();
if (insertIDs.get(0).getIsSuccess() == true) {
mAlertDialog.setMessage(insertIDs.get(0).getMessage());
//progressBar.dismiss();
} else {
// progressBar.dismiss();
mAlertDialog.setMessage(AppConstants.SaveKeyData.DATANOTSAVE);
}
} catch (Exception e) {
e.printStackTrace();
}
mAlertDialog.setTitle(AppConstants.AppText.HDFC);
mAlertDialog.setPositiveButton(AppConstants.AppText.OK, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
getParent().clearBackStack();
//getParent().openHomeFragment();
//progressBar.dismiss();
}
});
mAlertDialog.show();
}
@Override
public void onFailure(Call<List<ModelFileInsertID>> call, Throwable t) {
Toast.makeText(getActivity(), AppConstants.AppText.SERVICE_ERROR, Toast.LENGTH_LONG).show();
}
});
}
}
public JSONArray getAddDetails() {
JSONArray detailsArray = new JSONArray();
JSONObject jsonObj;
for (int i = 0; i < travelRequestAddDetailses.size(); i++) {
jsonObj = new JSONObject();
try {
jsonObj.put(AppConstants.SaveKeyData.KEY_REIMBURSEMENT_DTL_ID, 0);
jsonObj.put(AppConstants.SaveKeyData.KEY_REIMBURSEMENT_HDR_ID, 0);
jsonObj.put(AppConstants.SaveKeyData.KEY_TRAVEL_DATE, travelRequestAddDetailses.get(i).getTravellingDate());
jsonObj.put(AppConstants.SaveKeyData.KEY_TRAVEL_FROM, travelRequestAddDetailses.get(i).getTravellingFrom());
jsonObj.put(AppConstants.SaveKeyData.KEY_TRAVEL_TO, travelRequestAddDetailses.get(i).getTravellingTo());
jsonObj.put(AppConstants.SaveKeyData.KEY_TRAVEL_DESCRIPTION, travelRequestAddDetailses.get(i).getTravellingDesc());
jsonObj.put(AppConstants.SaveKeyData.KEY_TRAVEL_AMOUNT, travelRequestAddDetailses.get(i).getTravellingAmount());
detailsArray.put(jsonObj);
} catch (IndexOutOfBoundsException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
}
return detailsArray;
}
ModelFileInsertID pojo class
public class ModelFileInsertID {
@SerializedName("Message")
@Expose
private String message;
@SerializedName("Request")
@Expose
private String request;
@SerializedName("IsSuccess")
@Expose
private Boolean isSuccess;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getRequest() {
return request;
}
public void setRequest(String request) {
this.request = request;
}
public Boolean getIsSuccess() {
return isSuccess;
}
public void setIsSuccess(Boolean isSuccess) {
this.isSuccess = isSuccess;
}}
更新
公共类HDFCService {private static OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.MINUTES)
.readTimeout(10, TimeUnit.MINUTES)
.build();
private static final Retrofit RETROFIT = new Retrofit.Builder()
.baseUrl(AppConstants.AppText.SERVICE_BASE_URL).client(client)
.addConverterFactory(GsonConverterFactory.create())
.build();
private static final TravelRequestService TRAVEL_REQUEST_SERVICE = RETROFIT.create(TravelRequestService.class);
public static TravelRequestService setSaveTravelRequestDetails(){
return TRAVEL_REQUEST_SERVICE;
}
}
答案 0 :(得分:0)
尝试将JSONObject作为RequestBody传递
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), jsonObject);
Call<List<ModelFileInsertID>> call = HDFCService.setSaveTravelRequestDetails().saveTravelRequestDetails(requestBody);
API服务接口:
@POST("api/Conveyance/SubmitConveyanceRequest")
Call<List<ModelFileInsertID>> saveTravelRequestDetails(@Body RequestBody body);