Я новичок в android. Я на самом деле стажер, работающий в стартап-компании, поэтому я должен сам разбираться. Мой руководитель команды попросил меня написать приложение, чтобы вызвать REST API из приложения Android. Он попросил меня прочитать значение статуса из одного ответа api и показать его значение в новом действии. На самом деле я понятия не имею, что я должен делать. До сих пор я узнал только основные вещи, такие как передача ценностей между действиями. Пожалуйста, предложите мне хороший учебник или дайте мне идею для начала.
Вызов API REST из приложения Android
Ответ 1
- Если вы хотите интегрировать Retrofit (все шаги, определенные здесь):
Перейти в мой блог: модернизация с Kotline
- Пожалуйста, используйте библиотеку android-async-http.
ссылка ниже объясняет все шаг за шагом.
http://loopj.com/android-async-http/
Вот примеры приложений:
Создать класс:
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, если это необходимо.