Я хочу получить доступ к онлайн-API через приложение для Android.Для этого я написал простые в доступе функции для отправки запросов через пакет Android Volley.Однако приложение сразу отображает 0, когда я пытаюсь присвоить значение, полученное при отправке запроса, в TextView.Я понимаю, что это, вероятно, потому, что функция обрабатывает объект как «ноль», потому что ответ еще не прибыл, и что мне нужно использовать AsyncTasks, чтобы справиться с этим должным образом, но Руководство разработчика от Android Studio на самом деле мне не очень помогло, потому что, чтобы быть на 100% честным с вами, я не инженер-программист, и я абсолютно потерян на этом этапе.
Вот некоторый код о том, как я получаю доступ к API:
org.json.JSONObject makeRequest(String URL, String method, String[] headers){
int reqType;
switch(method.toUpperCase()){
case "GET":
reqType = Request.Method.GET;
break;
case "DELETE":
reqType = Request.Method.DELETE;
break;
default:
return null;
}
Response.Listener<JSONObject> listener = new Response.Listener<JSONObject>(){
@Override
public void onResponse(JSONObject Response){
result = Response;
}
};
Response.ErrorListener err = new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
result = null;
}
};
JsonObjectRequest req = new JsonObjectRequest(reqType, URL, null, listener, err){
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put(headers[0], headers[1]);
return params;
}
};
;
rQ_volley.add(req);
return result;
}
И, кроме того, немного кода о том, где я получаю доступ к описанному выше методу
JSONArray koordTargetArr = rBuild.makeRequestArr("https://nominatim.openstreetmap.org/search?q="+target+"&format=json&polygon=1&addressdetails=1", "get",headersLonLat);
if(koordTargetArr != null) {
JSONObject koordTargetOBJ = koordTargetArr.getJSONObject(0);
koordTarget = koordTargetOBJ.getString("lon").concat(",").concat(koordTargetOBJ.getString("lat"));
}
else return 0;
. Буду признателен за любую помощь, которую вы можете мне дать, например, о том, где я реализую AsyncTask и как я его создаю.У меня есть опыт работы с асинхронной библиотекой в Node.js, если это вообще помогает.
РЕДАКТИРОВАТЬ: Это НЕ дубликат Как использовать java.net.URLConnection для запуска и обработки HTTP-запросов Я уже знаю, как отправлять HTTP-запросы, я не знаю, как использовать Android AsyncTask, HTTP-запросы НЕ являются темой этого вопроса.