我有一个请求和响应Json。当我提交请求时,它将在我的应用程序中显示响应。Url显示邮递员请求和响应[1]:https://i.stack.imgur.com/UW4jo.png我尝试了下面的代码,但面临的问题是,我得到了正确的JSONObject响应,但在调试时,当光标进入改装的onResponse方法时,主体显示为null,错误代码为500。但在《邮差》中,一切都很好。我因为这个问题浪费了两天时间。请帮帮我。
应用代理
@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类
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;
}
}
尝试将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);
我部署基本Laravel项目到服务器。当我点击我的域名,它返回默认的欢迎视图。当我把简单的道路(见下文)添加到代码中,并尝试在浏览器中输入该路线时,它会返回500个内部错误。除"/"根路由外,所有路由都返回500错误。 文件夹结构: Laravel文件位于Laravel目录中,但来自公共目录的文件位于api目录中。 .api目录中的htaccess文件: 存储目录和其中的所有内容对任何人都是可写、
问题内容: 我正在通过Ajax将幻灯片(Jquery Ui Slider)中的每个滑块值传递到我的Controller。 Slider + Ajax看起来像这样: 因此,我确实有这样的想法: 我的路线如下所示: 在我的Controller方法中,我这样调用它: Log :: info($ sliderValue)告诉我,我确实在每张幻灯片上都获得了正确的滑块值。 当我尝试返回到编辑视图时,在控制台
我遇到了从html向servlet提交数据的问题 消息为空 说明服务器遇到意外情况,无法完成请求。 例外情况 注意服务器日志中提供了根本原因的完整堆栈跟踪。
问题内容: 我已经实现了IErrorHandler来处理在我的宁静WCF服务的构造函数中引发的授权异常。当捕获到一般异常时,将按预期返回我的自定义类型,但是ContentType标头不正确。 但是,当错误处理程序尝试返回401未经授权的http状态代码时,消息正文将覆盖为默认类型,但ContentType标头应为原样。 显然这里有问题,但我不确定是什么。 如何实现IErrorHandler,使其以
我使用的是Nexus3.2,我有包含npmjs和npm-internal存储库的npm-all组,但例如,当我执行时,返回以下错误: npm信息如果以OK结束,则它可以工作 npm信息使用npm@3.10.3 npm信息使用节点@v6.5.0 npm信息尝试注册表请求尝试#1在17:31:16 npm http请求GET http://x.x.x.x:8081/repository/npm-all
我已经发布了一个请求,并在postman上测试它,响应在postman和android logcat上正确返回,但在改型时,它在正文中返回null 下面是响应的模型 当我发送请求时,响应将获得null响应,而errorbody内容将获得以下内容 [size=99 text={\r\n“errors”:{\r\n“driversapi”:[\r\n“order alredy assig…] 下面是预