okhttp3
compile 'com.squareup.okhttp3:okhttp:3.2.0'
okhttp3方法封装类
public class OKhttp {
//设置一个接口 提供外部数据 类似handle功能
private OKhttp.OnOkButtonFireListener okListener;
public interface OnOkButtonFireListener{
public void error(String resultStr);
public void success(String resultStr);
}
public void setOkListener(OKhttp.OnOkButtonFireListener okListener) {
this.okListener = okListener;
}
/**
* 字符串请求数据
* @param mContext
* @param strUrl 请求地址
* @param formBodyBuild 请求参数
*/
public void postString(Context mContext, String strUrl, FormBody.Builder formBodyBuild) {
post(mContext,strUrl,formBodyBuild,null,null);
}
/**
* 上传文件
* @param mContext
* @param strUrl 请求地址
* @param formBodyBuild 请求参数
* @param pcth 上传文件sd卡路径
*/
public void postPcth(Context mContext,String strUrl,FormBody.Builder formBodyBuild,String pcth) {
post(mContext,strUrl,formBodyBuild,pcth,null);
}
/**
* 下载文件
* @param mContext
* @param strUrl 请求地址
* @param formBodyBuild 请求参数
* @param mdestFileName 下载到本地路径
*/
public void postmdest(Context mContext,String strUrl,FormBody.Builder formBodyBuild,final String mdestFileName) {
post(mContext,strUrl,formBodyBuild,null,mdestFileName);
}
//使用POST方法
public void post(final Context mContext, String strUrl, FormBody.Builder formBodyBuild, String pcth, final String mdestFileName) {
try {
OkHttpClient client = new OkHttpClient.Builder()
//连接超时
.connectTimeout(10, TimeUnit.SECONDS)
//写入超时
.writeTimeout(20, TimeUnit.SECONDS)
//读取超时
.readTimeout(20, TimeUnit.SECONDS)
.build();
//打包表单数据
//FormBody.Builder formBodyBuild = new FormBody.Builder();
//formBodyBuild.add("number", numberStr);
//formBodyBuild.add("pwd", pwdStr);
//设置请求头
Request request = null;
if(null!=pcth && !"".equals(pcth)){
request = new Request.Builder().url(strUrl)
//上传文件的写法
.post(RequestBody.create(MediaType.parse("text/x-markdown; charset=utf-8"),
new File(pcth)))
.post(formBodyBuild.build())
.build();
}else{
request = new Request.Builder().url(s