LiteHttp极简且智能的Android HTTP框架

来源:互联网 发布:网络丢包率标准 编辑:程序博客网 时间:2024/06/07 06:23

今天接触到了LiteHttp框架,觉得挺不错,比Vollery更轻量级。详细介绍和用法,请参考:

http://www.eoeandroid.com/thread-326584-1-1.html

上面有详细的介绍,这里简单介绍一下怎么用这个框架来给服务端发送请求,完成客户端用户名和密码的验证。

GitHub链接:

https://github.com/litesuits/android-lite-http

1. 用上面的连接下载相应的liteHttp.jar, 在项目中引用它(Eclipse和Andriod Studio的引用方法不一样,请分别处理)。

2. 初始化

Liteclient = LiteHttpClient.newApacheHttpClient(context);
HttpAsyncExecutor asyncExecutor = HttpAsyncExecutor.newInstance(client);

3. 发送请求,这里会给服务端发送一个验证的loginUrl, 后面会带上用户名和密码, 然后服务端(前提是服务端的接口已经OK)会返回一个Json串(包括Authorize和Version两个属性),ApiLoginReturn这个对象就定义了服务端返回Json串中的属性(Authorize, Version)。当验证成功后,这个框架会自动解析服务端返回的Json串,然后将返回的值自动封装在ApiLoginReturn对象中,这样就能根据ApiLoginReturn对象中Authorize的返回值来验证用户名和密码是否正确。验证成功和失败都有相应的回调函数,能够根据不同的场景做不同的逻辑处理。

asyncExecutor.execute(new Request(loginUrl), new HttpModelHandler<ApiLoginReturn>() {                @Override                protected void onSuccess(ApiLoginReturn o, Response response) {                    if (o.Authorize) {                        Toast.makeText(context, "验证成功", Toast.LENGTH_LONG).show();                    } else {                        Toast.makeText(context, "验证失败", Toast.LENGTH_LONG).show();                    }                }                @Override                protected void onFailure(HttpException e, Response response) {                    Toast.makeText(context, "验证连接失败,请检查网络连接情况", Toast.LENGTH_LONG).show();                }            });public static class ApiLoginReturn {        public boolean Authorize; //验证结果        public String Version; //版本号}

如果服务端返回是流,比如说,是一张图片,该怎么写呢?下面是一个从服务端请求图片验证码的操作:

    /**     * 获取图片验证码     */    private void requestImageCode() {        mHttpAsyncExecutor.execute(new Request(imageCodeUrl).setDataParser(new BitmapParser()), new HttpResponseHandler() {            @Override            protected void onSuccess(Response response, HttpStatus httpStatus, NameValuePair[] nameValuePairs) {                if (httpStatus.isSuccess()) {                    mRetrievePasswordImageCodeView.setImageBitmap(response.getBitmap()); //从response中直接得到bitmap                }            }            @Override            protected void onFailure(Response response, HttpException e) {            }        });    }

其他的一些功能,比如多文件上传功能,可以参考上面的帖子。


2 0
原创粉丝点击