okhttp-utils
来源:互联网 发布:windows阻止此软件 编辑:程序博客网 时间:2024/06/06 08:41
title: 2017-3-27 okhttp-utils
tags: okhttp,As,Eclipse
目前对以下需求进行了封装
* 一般的get请求* 一般的post请求* 基于Http Post的文件上传(类似表单)* 文件下载/加载图片* 上传下载的进度回调* 支持取消某个请求* 支持自定义Callback* 支持HEAD、DELETE、PATCH、PUT* 支持session的保持
* 支持自签名网站https的访问,提供方法设置下证书就行
用法
Android Studio
compile 'com.zhy:okhttputils:2.6.2'
Eclipse
下载最新jar:okhttputils-2_6_2.jar
注:需要同时导入okhttp和okio的jar,下载见:https://github.com/square/okhttp.
Get请求
String url = "http://www.csdn.net/"; OkHttpUtils .get() .url(url) .addParams("username", "hyman") .addParams("password", "123") .build() .execute(new StringCallback() { @Override public void onError(Request request, Exception e) { } @Override public void onResponse(String response) { } });
Post请求
OkHttpUtils .post() .url(url) .addParams("username", "hyman") .addParams("password", "123") .build() .execute(callback);
Post JSON
OkHttpUtils .postString() .url(url) .content(new Gson().toJson(new User("zhy", "123"))) .mediaType(MediaType.parse("application/json; charset=utf-8")) .build() .execute(new MyStringCallback());
自定义CallBack
目前内部包含StringCallBack,FileCallBack,BitmapCallback,可以根据自己的需求去自定义Callback,例如希望回调User对象:
public abstract class UserCallback extends Callback<User>{ @Override public User parseNetworkResponse(Response response) throws IOException { String string = response.body().string(); User user = new Gson().fromJson(string, User.class); return user; }} OkHttpUtils .get() .url(url) .addParams("username", "hyman") .addParams("password", "123") .build() .execute(new UserCallback() { @Override public void onError(Request request, Exception e) { mTv.setText("onError:" + e.getMessage()); } @Override public void onResponse(User response) { mTv.setText("onResponse:" + response.username); } });
通过parseNetworkResponse回调的response进行解析,该方法运行在子线程,所以可以进行任何耗时操作,详细参见sample。
下载文件
OkHttpUtils .get() .url(url) .build() .execute(new FileCallBack(Environment.getExternalStorageDirectory().getAbsolutePath(), "gson-2.2.1.jar") { @Override public void inProgress(float progress) { mProgressBar.setProgress((int) (100 * progress)); } @Override public void onError(Request request, Exception e) { Log.e(TAG, "onError :" + e.getMessage()); } @Override public void onResponse(File file) { Log.e(TAG, "onResponse :" + file.getAbsolutePath()); } });
注:下载文件可以使用FileCallback,需要传入文件需要保存的文件夹以及文件名。
显示图片
OkHttpUtils .get() .url(url) .build() .execute(new BitmapCallback() { @Override public void onError(Request request, Exception e) { mTv.setText("onError:" + e.getMessage()); } @Override public void onResponse(Bitmap bitmap) { mImageView.setImageBitmap(bitmap); } });
上传下载的进度显示
new Callback<T>(){ //... @Override public void inProgress(float progress) { //use progress: 0 ~ 1 }}
callback回调中有inProgress方法,直接复写即可。
0 0
- okhttp-utils
- okhttp-utils
- okhttp封装okhttp-utils
- Okhttp-Utils使用
- okhttp-utils 用法介绍
- okhttp-utils使用
- 对Okhttp的封装Okhttp-utils
- hongyang okhttp-utils 上传json
- okhttp-utils的封装之okhttp的使用
- Android okHttp封装库(1) -- okhttp-utils
- UTILS
- Utils
- utils
- utils
- Utils
- Utils
- Utils
- utils
- NGUI所见即所得之UITweener
- Linux命令中ssh远程登录
- 小安的字典
- 2.1 1973确定进制
- 集成学习
- okhttp-utils
- 回车和换行,以及不同软件对敲回车键的操作
- eclipse中使用junit
- hdu1102——Constructing Roads(prim)
- hdoj-2005-第几天?(解题报告)
- 常见异常
- arm基础汇编指令小结
- LeetCode 200 Number of Islands(DFS)
- 设置root密码为“123456”后,直接连localhost密码为空可连,用123456连不上,为啥?