在Android Studio中只要在dependencies里添加
compile ‘com.zhy:okhttputils:2.6.2’
而在eclipse中则需要导入okhttp-3.9.0.jar,okhttputils-2_6_2.jar,okio-1.13.0.jar 这三个jar包,但是放心,我已经上传了资源
http://download.youkuaiyun.com/download/zxc472504515/9985912
大家可以在这里下载到哦!
接下来导入jar包成功了就开始搭建自己的网络框架了,直接上代码+图片,不墨迹!
首先,在 Application里初始化下这个工具,设置下连接时间和超时时间。
@Override
public void onCreate() {
super.onCreate();
mContext = this;
getokhttp();
}
public void getokhttp() {
OkHttpClient okHttpClient = new OkHttpClient.Builder()
//
//设置连接超时时间
.connectTimeout(30000L, TimeUnit.MILLISECONDS)
//设置读取超时时间
.readTimeout(30000L, TimeUnit.MILLISECONDS)
//其他配置
.build();
OkHttpUtils.initClient(okHttpClient);
}
第二步写个okhttp的工具类
public class Okhttp {
/**
* post请求
* @param url
* @param paramters
* @param callback
*/
public static void post(String url, Map<String, String> paramters,
final Objectcallback callback) {
try {
OkHttpUtils
.post()
.url(url)
.params(paramters)
.build()
.execute(new StringCallback() {
@Override
public void onError(Call call, Exception e, int id) {
Log.e("888", "失败!"+e.toString());
callback.onFalia(id, e.toString());
}
@Override
public void onResponse(String responseString, int id) {
if (callback != null) {
callback.onsuccess(responseString);
}
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 上传文件
* @param url
* @param paeam
* @param file
* @param callback
*/
public static void post2(String url, String paeam,File file,
final Objectcallback callback) {
try {
OkHttpUtils
.post()
.url(url)
// .params("file1", com.olacos.kunyu.qqqq File(Environment.getExternalStorageDirectory() + "/DCIM/Camera/IMG_20151225_155549.jpg"))//
.build()
.execute(new StringCallback() {
@Override
public void onError(Call call, Exception e, int id) {
Log.e("888", "失败!");
callback.onFalia(id, e.toString());
}
@Override
public void onResponse(String responseString, int id) {
if (callback != null) {
callback.onsuccess(responseString);
}
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* get请求
* @param url
* @param paramters
* @param callback
*/
public static void get(String url, Map<String, String> paramters,
final Objectcallback callback) {
try {
OkHttpUtils
.get()
.url(url)
.params(paramters)
.build()
.execute(new StringCallback() {
@Override
public void onError(Call call, Exception e, int id) {
callback.onFalia(id, e.toString());
}
@Override
public void onResponse(String responseString, int id) {
if (callback != null) {
callback.onsuccess(responseString);
}
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
public interface Objectcallback {
void onsuccess(String st);
void onFalia(int code, String errst);
}
}
这个封装的类只是最简单的get/post和上传文件的封装,具体的用法,参考
https://github.com/hongyangAndroid/okhttputils 我只是提供的一个思路
最重要的来了
写个API类 封装全局需要调用的方法
最后 你可以欢快的调用自己封装好的库