您的位置:首页 > 理论基础 > 计算机网络

android-async-http Android网络请求请求库

2016-06-02 20:20 357 查看

简单背景

Android Asynchronous Http Client官方主页:Android Asynchronous Http Client

发送异步http请求,在callbacks里处理回应(其他更多Features详见官方主页)。

官方推荐使用方法

1.创建一个静态的类

public class AsynchronousTest {
private static final String TAG = "AsynchronousTest";

private static final String BASE_URL="http://www.oschina.net/%s";

private static AsyncHttpClient client = new AsyncHttpClient();

public static void get(String url, RequestParams params, AsyncHttpResponseHandler handler){
client.get(getAbsoluteUrl(url), params, handler);
Log.i(TAG, new StringBuilder("GET ").append(getAbsoluteUrl(url)).append("&")
.append(params).toString());
}

public static void get(String url,  AsyncHttpResponseHandler handler){
client.get(getAbsoluteUrl(url),  handler);
Log.i(TAG, new StringBuilder("GET ").append(getAbsoluteUrl(url)).toString());
}

public static void post(String partUrl, RequestParams params,
AsyncHttpResponseHandler handler) {
client.post(getAbsoluteUrl(partUrl), params, handler);
Log.i(TAG, new StringBuilder("POST ").append(getAbsoluteUrl(partUrl)).append("?")
.append(params).toString());
}

private static String getAbsoluteUrl(String relativeUrl) {

Log.i(TAG, "getAbsoluteUrl: "+ String.format(BASE_URL, relativeUrl));
return String.format(BASE_URL, relativeUrl);
}

}


2. 定义一个handler(回调里面定义的方法)

private AsyncHttpResponseHandler mHandler = new AsyncHttpResponseHandler() {

@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {

Log.i(TAG, "onSuccess: " + new String(responseBody));
}

@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
Log.i(TAG, "onFailure: ");
}
}


3.调用定义的GET(POST)方法

RequestParams params = new RequestParams();
params.put("username", "myUserName");
params.put("pwd", "myPassWord");
params.put("keep_login", 1);
AsynchronousTest.get("action/api/login_validate", params, mHandler);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: