从Android应用程序调用REST API

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

解决方法:

>如果要集成Retrofit(此处定义的所有步骤):

转到我的博客retrofit with kotline

>请使用android-async-http库.

以下链接逐步解释了所有内容.

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

以下是示例应用:

> 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-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", "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权限.

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

您可以为Header []添加编译’com.loopj.android:android-async-http:1.4.9′,并在build.gradle文件中为JSONObject编译’org.json:json:20160212′(如果需要).

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...