Это моя просьба:
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest
(Request.Method.POST, url, parameters, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
ArrayList<String> empresas = new ArrayList<String>();
for (Iterator<String> it = response.keys(); it.hasNext(); ) {
String key = it.next();
try {
String empresa = (String) response.get(key);
empresas.add(empresa);
empresasMap.put(key, empresa);
} catch (JSONException e) {
e.printStackTrace();
}
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(EmpresasFetch.this.localContext,
R.layout.list_mobile, empresas);
EmpresasActivity.empresasList.setAdapter(adapter);
EmpresasActivity.empresasList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(EmpresasFetch.this.localContext,
parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show();
/*Intent intent = new Intent(view.getContext(), EmpresasActivity.class);
intent.putExtra("segmento", (String) parent.getItemAtPosition(position));
localContext.startActivity(intent);*/
}
});
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.err.println("It wasn't possible to fetch the server's data.");
System.err.println(error);
System.err.println(error.networkResponse);
}
});
System.err.println(error.networkResponse); возвращает ноль:
W/System.err: It wasn't possible to fetch the server's data.
com.android.volley.ParseError: org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject
W/System.err: null
Я не могу получить доступ к Android Profiler, потому что целевая версия ниже 21. Как я могу увидеть эту строку, возвращаемую с веб-сервера?
Что ж, я не хочу писать формы в полностью неконтекстной среде только для того, чтобы увидеть ответ на запрос POST. Я не могу тост или журнал, потому что у меня просто нет доступа к этой возвращаемой строке ошибки (я знаю, что у меня может быть какая-то ошибка на моем PHP, но я хочу увидеть ошибку!).
Я не знаю, почему его значение null или вместо этого будет работать фраза «new String (networkResponse.data)» ... но я знаю, если вы просто выполнили обычный запрос String и преобразовали его в JSON после получения ответа, это даст вам гораздо больше контроля.
Если я пытаюсь получить доступ к .data или .allHeaders из networkResponse, я получаю исключение NullPointerException (это приводит к сбою приложения).




Почему нельзя просто тост или журнал? Можете ли вы выполнить обычный запрос String вместо запроса JSONObject ... или вручную запросить сервер с помощью браузера и посмотреть ответ? Кажется, что ответ не является объектом JSON.