如何从 Android 应用程序调用 REST API? [英] How do I call REST API from an android app?

查看:26
本文介绍了如何从 Android 应用程序调用 REST API?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

解决方案

  1. 如果您想集成 Retrofit(此处定义的所有步骤):

转到我的博客:使用 kotlin 进行改造

  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

创建一个类:

公共类HttpUtils {私有静态最终字符串 BASE_URL = "http://api.twitter.com/1/";私有静态 AsyncHttpClient 客户端 = 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);}私有静态字符串 getAbsoluteUrl(String relativeUrl) {返回 BASE_URL + relativeUrl;}}

调用方法:

 RequestParams rp = new RequestParams();rp.add(用户名",aaa");rp.add(密码",aaa@123");HttpUtils.post(AppConstant.URL_FEED, rp, new JsonHttpResponseHandler() {@覆盖public void onSuccess(int statusCode, Header[] headers, JSONObject response) {//如果响应是 JSONObject 而不是预期的 JSONArrayLog.d("asd", "---------------- this is response : " + response);尝试 {JSONObject serverResp = new JSONObject(response.toString());} catch (JSONException e) {//TODO 自动生成的 catch 块e.printStackTrace();}}@覆盖public void onSuccess(int statusCode, Header[] headers, JSONArray 时间线) {//拉出公共时间线上的第一个事件}});

请在您的清单文件中授予互联网权限.

 


您可以为 Header[]compile 'org.json:json:20160212' for JSONObject 如果需要,在 build.gradle 文件中.

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. If you want to integrate Retrofit (all steps defined here):

Goto my blog : retrofit with kotlin

  1. Please use android-async-http library.

the link below explains everything step by step.

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

Here are sample apps:

  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

Create a class :

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

Call Method :

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

Please grant internet permission in your manifest file.

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


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.

这篇关于如何从 Android 应用程序调用 REST API?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆