Подтвердить что ты не робот

Вызов API REST из приложения Android

Я новичок в android. Я на самом деле стажер, работающий в стартап-компании, поэтому я должен сам разбираться. Мой руководитель команды попросил меня написать приложение, чтобы вызвать REST API из приложения Android. Он попросил меня прочитать значение статуса из одного ответа api и показать его значение в новом действии. На самом деле я понятия не имею, что я должен делать. До сих пор я узнал только основные вещи, такие как передача ценностей между действиями. Пожалуйста, предложите мне хороший учебник или дайте мне идею для начала.

4b9b3361

Ответ 1

  1. Если вы хотите интегрировать Retrofit (все шаги, определенные здесь):

Перейти в мой блог: модернизация с Kotline

  1. Пожалуйста, используйте библиотеку android-async-http.

ссылка ниже объясняет все шаг за шагом.

http://loopj.com/android-async-http/

Вот примеры приложений:

  1. http://www.techrepublic.com/blog/software-engineer/calling-restful-services-from-your-android-app/

  2. http://blog.strikeiron.com/bid/73189/Integrate-a-REST-API-into-Android-Application-in-less-than-15-minutes

Создать класс:

public class HttpUtils {
  private static final String BASE_URL = "http://api.twitter.com/1/";

  private static AsyncHttpClient client = new AsyncHttpClient();

  public static void get(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
      client.get(getAbsoluteUrl(url), params, responseHandler);
  }

  public static void post(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
      client.post(getAbsoluteUrl(url), params, responseHandler);
  }

  public static void getByUrl(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
      client.get(url, params, responseHandler);
  }

  public static void postByUrl(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
      client.post(url, params, responseHandler);
  }

  private static String getAbsoluteUrl(String relativeUrl) {
      return BASE_URL + relativeUrl;
  }
}

Метод вызова:

    RequestParams rp = new RequestParams();
    rp.add("username", "aaa"); rp.add("password", "[email protected]");

    HttpUtils.post(AppConstant.URL_FEED, rp, new JsonHttpResponseHandler() {
        @Override
        public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
            // If the response is JSONObject instead of expected JSONArray
            Log.d("asd", "---------------- this is response : " + response);
            try {
                JSONObject serverResp = new JSONObject(response.toString());                                                
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }                   
        }

        @Override
        public void onSuccess(int statusCode, Header[] headers, JSONArray timeline) {
            // Pull out the first event on the public timeline

        }
    });

Пожалуйста, дайте интернет-разрешение в вашем файле манифеста.

 <uses-permission android:name="android.permission.INTERNET" />

Вы можете добавить compile 'com.loopj.android:android-async-http:1.4.9' для Header[] и compile 'org.json:json:20160212' для JSONObject в файле build.gradle, если это необходимо.