从Android应用程序调用REST API

我是新来的android。 我其实是一家创业公司的实习生,所以我必须自己学习。 我的团队负责人刚刚要求我编写一个应用程序,以从Android应用程序调用REST API。 他要求我从一个api响应中读取状态值,并在一个新的活动中显示它的价值。 我其实不知道我应该做什么。 到目前为止,我只学习了诸如活动之间传递价值等基本的东西。 请给我一个好的教程,或给我一个开始的想法。

Solutions Collecting From Web of "从Android应用程序调用REST API"

请使用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

创build一个类:

 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 } }); } 

请在您的清单文件中授予互联网许可。

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

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