我已经在这个问题上苦苦挣扎了 3 天,并且没有从 Stack 上的其他帖子中获得任何帮助或答案。
我正在尝试将变量从我的移动应用程序发布到我的服务器,并且在邮递员上一切正常,我仔细检查了所有内容都从邮递员镜像到我的 android http 代码。
我正在使用 volley 并且不断收到状态代码 400,并且最近在响应代码旁边收到了一条消息,但这只是说“Null”
什么是空??我在我的代码中没有看到任何错误,似乎标头是正确的并且与邮递员相同,并且在调试 JSON 对象时很好并且可以获取变量。
我完全迷失了,非常感谢一些帮助:
我的代码:
private void sendRequest() {
RequestQueue queue = Volley.newRequestQueue(this);
String url ="http://xxx.xx.xx.xxx:8080/engAppApi/webservices/engineerTable/";
final JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("machineType", machineType);
jsonObject.put("workOrderNumber", workOrderNumber);
jsonObject.put("employeeName", employee);
jsonObject.put("activity", activity);
jsonObject.put("durationHours", durationHours);
jsonObject.put("durationMins", durationMins);
jsonObject.put("downtimeHours", downTimeHours);
jsonObject.put("downtimeMins", downTimeMins);
jsonObject.put("details", details);
jsonObject.put("createdTimestamp", currentDateandTime);
} catch (JSONException e) {
// handle exception
}
JsonObjectRequest putRequest = new JsonObjectRequest(Request.Method.POST, url, jsonObject,
new Response.Listener<JSONObject>()
{
@Override
public void onResponse(JSONObject response) {
// response
Log.d("Response", response.toString());
Toast.makeText(MainActivity.this, response.toString(), Toast.LENGTH_SHORT).show();
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error) {
// error
Log.d("Error.Response", error.toString());
Log.d("errornetwork", String.valueOf(error.networkResponse));
Toast.makeText(MainActivity.this, "ERROR OCCURED", Toast.LENGTH_SHORT).show();
}
}
) {
@Override
public Map<String, String> getHeaders()
{
Map<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json;");
headers.put("securityToken", "Good Token");
return headers;
// charset=utf-8
}
@Override
public byte[] getBody() {
try {
Log.i("json", jsonObject.toString());
return jsonObject.toString().getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
@Override
public String getBodyContentType() {
return "application/json";
}
};
putRequest.setRetryPolicy(new DefaultRetryPolicy( 50000, 5, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
putRequest.setShouldCache(false);
queue.add(putRequest);
}