如何从Android应用程序调用REST API?

问题描述:

我是android的新手,也是编程的新手.如何从Android应用程序调用REST API(GET/POST请求).请给我推荐一个很好的教程,或者给我一个开始的想法.

I'm new to android and new to programming as well. How do I call a REST api (GET/POST request) from an android app. Please suggest me a good tutorial, or give me an idea to start with.

  1. 如果要集成翻新(此处定义了所有步骤):

转到我的博客:用kotline改装

  1. 请使用android-async-http库.

下面的链接逐步说明了所有内容.

the link below explains everything step by step.

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

以下是示例应用程序:

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

http://blog.strikeiron.com/bid/73189/Integrate-a-REST-API-into-Android-Application-in-少于15分钟

创建课程:

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", "aaa@123");

    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

        }
    });

请在清单文件中授予Internet权限.

Please grant internet permission in your manifest file.

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


如果需要,可以在build.gradle文件中为Header[]添加compile 'com.loopj.android:android-async-http:1.4.9',为JSONObject添加compile 'org.json:json:20160212'.


you can add compile 'com.loopj.android:android-async-http:1.4.9' for Header[] and compile 'org.json:json:20160212' for JSONObject in build.gradle file if required.