Anonymous
Получение com.android.volley.ServerError
Сообщение
Anonymous » 06 янв 2026, 08:48
PUT-запрос с использованием Volley:
Код: Выделить всё
Log.i("JsonObject is",finaljsonData.toString());
Output:-
{"stats":[{"med_id":1,"med_name":"Evening","start_date":1476107306168,"end_date":1476193706168,"adherence":{"taken_on":[1476107704867],"missed_on":[]}}]}
Код:
Код: Выделить всё
JsonObjectHeader customRequest=new JsonObjectHeader(Request.Method.PUT,url, finaljsonData, listener, errorListener);
RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
requestQueue.add(customRequest);
класс:
Код: Выделить всё
public class JsonObjectHeader extends JsonRequest {
public JsonObjectHeader(int method, String url, String requestBody, Response.Listener listener, Response.ErrorListener errorListener) {
super(method, url, requestBody, listener, errorListener);
}
public JsonObjectHeader(String url, JSONObject jsonRequest, Response.Listener listener,
Response.ErrorListener errorListener) {
this(jsonRequest == null ? Method.GET : Method.POST, url, jsonRequest,
listener, errorListener);
}
public JsonObjectHeader(int method, String url, JSONObject jsonRequest,
Response.Listener listener, Response.ErrorListener errorListener) {
super(method, url, (jsonRequest == null) ? null : jsonRequest.toString(), listener,
errorListener);
}
@Override
protected Response parseNetworkResponse(NetworkResponse response) {
try {
Log.i("Response parse","Yes");
String jsonString = new String(response.data,
HttpHeaderParser.parseCharset(response.headers));
Log.i("Json String",jsonString);
Log.i("Response Complete",response.toString());
Log.i("Response Data",response.data.toString());
return Response.success(new JSONObject(jsonString),
HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
} catch (JSONException je) {
return Response.error(new ParseError(je));
}
}
@Override
public Map getHeaders() throws AuthFailureError {
HashMap headers = new HashMap();
headers.put("Content-Type", "application/json; charset=utf-8");
headers.put("x-access-token", Constants.getTokenDB());
return headers;
}
}
Вывод LogCat:
Код: Выделить всё
10-10 19:45:15.186 22355-22426/user.com.test2 E/Surface: getSlotFromBufferLocked: unknown buffer: 0x7f5ba7cac7e0
10-10 19:45:15.797 22355-22650/user.com.test2 E/Volley: [198] BasicNetwork.performRequest: Unexpected response code 500 for url
10-10 19:45:15.798 22355-22355/user.com.test2 W/System.err: com.android.volley.ServerError
10-10 19:45:15.798 22355-22355/user.com.test2 W/System.err: at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:163)
10-10 19:45:15.798 22355-22355/user.com.test2 W/System.err: at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:112)
LogCat сервера:
Код: Выделить всё
{}
www-user-9 PUT /medstats 500 4.579 ms - 627
TypeError: Cannot read property 'length' of undefined
www-user-9 at /abc.js:390:12
www-user-9 at Layer.handle [as handle_request] (/xyz.js.js:95:5)
www-user-9 at next (/abc.js:131:13)
www-user-9 at /abc.js:61:5
www-user-9 at //abc.js:27:18
www-user-9 at nextTickCallbackWith0Args (node.js:420:9)
www-user-9 at process._tickDomainCallback (node.js:390:13)
При использовании PostMan все работает, поэтому я думаю, что это не ошибка сервера.
Подробнее здесь:
https://stackoverflow.com/questions/399 ... ervererror
1767678484
Anonymous
PUT-запрос с использованием Volley: [code]Log.i("JsonObject is",finaljsonData.toString()); Output:- {"stats":[{"med_id":1,"med_name":"Evening","start_date":1476107306168,"end_date":1476193706168,"adherence":{"taken_on":[1476107704867],"missed_on":[]}}]} [/code] Код: [code]JsonObjectHeader customRequest=new JsonObjectHeader(Request.Method.PUT,url, finaljsonData, listener, errorListener); RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext()); requestQueue.add(customRequest); [/code] [code]JsonObjectHeader[/code] класс: [code]public class JsonObjectHeader extends JsonRequest { public JsonObjectHeader(int method, String url, String requestBody, Response.Listener listener, Response.ErrorListener errorListener) { super(method, url, requestBody, listener, errorListener); } public JsonObjectHeader(String url, JSONObject jsonRequest, Response.Listener listener, Response.ErrorListener errorListener) { this(jsonRequest == null ? Method.GET : Method.POST, url, jsonRequest, listener, errorListener); } public JsonObjectHeader(int method, String url, JSONObject jsonRequest, Response.Listener listener, Response.ErrorListener errorListener) { super(method, url, (jsonRequest == null) ? null : jsonRequest.toString(), listener, errorListener); } @Override protected Response parseNetworkResponse(NetworkResponse response) { try { Log.i("Response parse","Yes"); String jsonString = new String(response.data, HttpHeaderParser.parseCharset(response.headers)); Log.i("Json String",jsonString); Log.i("Response Complete",response.toString()); Log.i("Response Data",response.data.toString()); return Response.success(new JSONObject(jsonString), HttpHeaderParser.parseCacheHeaders(response)); } catch (UnsupportedEncodingException e) { return Response.error(new ParseError(e)); } catch (JSONException je) { return Response.error(new ParseError(je)); } } @Override public Map getHeaders() throws AuthFailureError { HashMap headers = new HashMap(); headers.put("Content-Type", "application/json; charset=utf-8"); headers.put("x-access-token", Constants.getTokenDB()); return headers; } } [/code] Вывод LogCat: [code]10-10 19:45:15.186 22355-22426/user.com.test2 E/Surface: getSlotFromBufferLocked: unknown buffer: 0x7f5ba7cac7e0 10-10 19:45:15.797 22355-22650/user.com.test2 E/Volley: [198] BasicNetwork.performRequest: Unexpected response code 500 for url 10-10 19:45:15.798 22355-22355/user.com.test2 W/System.err: com.android.volley.ServerError 10-10 19:45:15.798 22355-22355/user.com.test2 W/System.err: at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:163) 10-10 19:45:15.798 22355-22355/user.com.test2 W/System.err: at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:112) [/code] LogCat сервера: [code]{} www-user-9 PUT /medstats 500 4.579 ms - 627 TypeError: Cannot read property 'length' of undefined www-user-9 at /abc.js:390:12 www-user-9 at Layer.handle [as handle_request] (/xyz.js.js:95:5) www-user-9 at next (/abc.js:131:13) www-user-9 at /abc.js:61:5 www-user-9 at //abc.js:27:18 www-user-9 at nextTickCallbackWith0Args (node.js:420:9) www-user-9 at process._tickDomainCallback (node.js:390:13) [/code] При использовании PostMan все работает, поэтому я думаю, что это не ошибка сервера. Подробнее здесь: [url]https://stackoverflow.com/questions/39961086/getting-com-android-volley-servererror[/url]