天天看点

引用开源框架通过AsyncHttpClient处理get/post请求

找到下载文件的源码,com包黏贴到项目中的src目录下

引用开源框架通过AsyncHttpClient处理get/post请求

引入jar包到libs下

引用开源框架通过AsyncHttpClient处理get/post请求

1.创建异步请求端对象

2.发送get请求,(get请求参数含义:请求的url地址;异步请求的handler)

3.在成功请求里(status:状态返回码,headers:头部请求信息,responsebody返回结果)设置控件内容

2.发送post请求,(get请求参数含义:请求的url地址;异步请求的handler)

3.封装请求参数

4.在成功请求里(status:响应状态码,headers:响应头信息,responsebody相应内容的字节码)设置控件内容

补充:

查看帮助文档我们知道,在post方法中传递参数时候可以创建requestparams的对象,put进你所想要赋的值。如下图:

引用开源框架通过AsyncHttpClient处理get/post请求
引用开源框架通过AsyncHttpClient处理get/post请求
引用开源框架通过AsyncHttpClient处理get/post请求

http://blog.csdn.net/zhaoyazhi2129/article/details/26509763

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

package com.example.android_httpasync;  

import org.apache.http.header;  

import com.loopj.android.http.asynchttpclient;  

import com.loopj.android.http.asynchttpresponsehandler;  

import com.loopj.android.http.requestparams;  

import android.app.activity;  

import android.os.bundle;  

import android.text.textutils;  

import android.view.view;  

import android.widget.edittext;  

import android.widget.textview;  

import android.widget.toast;  

/** 

 * 通过开源框架asynchttpclient的get/post请求处理 

 * @author zhaoyazhi 

 * 

 */  

public class mainactivity extends activity {  

    private edittext et_username;  

    private edittext et_password;  

    private textview tv_result;  

    @override  

    protected void oncreate(bundle savedinstancestate) {  

        super.oncreate(savedinstancestate);  

        setcontentview(r.layout.activity_login);  

        findview();  

    }  

    /** 

     * 查找控件 

     */  

    public void findview() {  

        et_password = (edittext) findviewbyid(r.id.editpass);  

        et_username = (edittext) findviewbyid(r.id.editusername);  

        tv_result = (textview) findviewbyid(r.id.tv_result);  

     * 登陆按钮操作 

     *  

     * @param v 

    public void login(view v) {  

        // 获取点击控件的id  

        int id = v.getid();  

        // 根据id进行判断  

        switch (id) {  

        case r.id.btn_login:// 进行登录操作  

            // 获取用户名密码  

            final string username = et_username.gettext().tostring();  

            final string userpass = et_password.gettext().tostring();  

            // 判断是否为空  

            if (textutils.isempty(username) || textutils.isempty(userpass)) {  

                toast.maketext(getapplicationcontext(), "用户名或者密码不能为空", 0)  

                        .show();  

            } else {  

                toast.maketext(getapplicationcontext(), "发送请求道服务器", 0).show();  

                // loginbyasynchttpclientget(username, userpass);  

                loginasynchttpclientpost(username, userpass);  

            }  

            break;  

        default:  

        }  

     * 通过开源框架asynchttpclient的post请求处理 

     * @param username 

     * @param userpass 

    private void loginasynchttpclientpost(final string username,  

            final string userpass) {  

        // 发送请求到服务器  

        asynchttpclient client = new asynchttpclient();  

        string url = "http://172.16.237.144:8080/login/loginservlet";  

        // 创建请求参数  

        requestparams params = new requestparams();  

        params.put("username", username);  

        params.put("userpass", userpass);  

        // 执行post方法  

        client.post(url, params, new asynchttpresponsehandler() {  

            @override  

            public void onsuccess(int statuscode, header[] headers,  

                    byte[] responsebody) {  

                // 设置值  

                tv_result.settext(new string(responsebody));  

            public void onfailure(int statuscode, header[] headers,  

                    byte[] responsebody, throwable error) {  

                // 打印错误信息  

                error.printstacktrace();  

        });  

     * 通过开源框架asynchttpclient的get请求处理 

    private void loginbyasynchttpclientget(final string username,  

        // 创建异步请求端对象  

        string url = "http://172.16.237.144:8080/login/loginservlet?username="  

                + username + "&userpass=" + userpass;  

        // 发送get请求对象  

        client.get(url, new asynchttpresponsehandler() {  

            // statuscode:状态返回码,headers:头部请求信息,responsebody返回结果  

                // 输出错误信息  

}  

为了加强我们理解,在onsuccess方法中加入一些测试语句:

引用开源框架通过AsyncHttpClient处理get/post请求

在控制台输出结果如下:

引用开源框架通过AsyncHttpClient处理get/post请求

 jar文件资源:http://download.csdn.net/detail/zhaoyazhi2129/7400787

源码:http://download.csdn.net/detail/zhaoyazhi2129/7400799

继续阅读