【andorid】基于okhttp3网络请求帮助类(GET、POST)
来源:互联网 发布:免费海关数据 米课 编辑:程序博客网 时间:2024/06/06 17:43
import android.os.AsyncTask;import com.wanwei.szjz.myapplication.util.LogcatHelper;import java.io.IOException;import java.util.Map;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import okhttp3.FormBody;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.Response;/** * Created by Administrator on 2016/9/22 0022. */public class HttpHelp { private static HttpHelp instance; private static OkHttpClient client; private ExecutorService executor; public enum Type{ GET,POST } public interface CallBack{ public void result(String result,boolean isSuccess); } public HttpHelp() { client = new OkHttpClient(); executor = Executors.newCachedThreadPool(); } public static HttpHelp getInstance() { if (instance ==null){ instance = new HttpHelp(); } return instance; } public void requestGet(final String url, final CallBack callBack){ new MyAsyncTask(url,callBack).executeOnExecutor(executor); } public void requestPost(final String url, Map<String,String> formParams,final CallBack callBack){ new MyAsyncTask(url,formParams,callBack).executeOnExecutor(executor); } public class MyAsyncTask extends AsyncTask<Void,Void,String>{ private String url; private Map<String,String> formParams; private Type type = Type.GET; private CallBack mCallBack; /** * get请求 * @param url 请求地址 * @param callBack 结果回调 */ public MyAsyncTask( String url,CallBack callBack) { this.url = url; this.type = Type.GET; this.mCallBack = callBack; } /** * post请求 * @param url 请求地址 * @param formParams 表单参数 * @param callBack 结果回调 */ public MyAsyncTask( String url, Map<String,String> formParams,CallBack callBack) { this.url = url; this.formParams = formParams; this.type = Type.POST; this.mCallBack = callBack; } @Override protected String doInBackground(Void... params) { String result = null; Request request = null; try { if(type ==Type.GET){ request = new Request.Builder() .url(url) .build(); }else if(type ==Type.POST){ //设置表单参数 FormBody.Builder builder = new FormBody.Builder(); for (String key: formParams.keySet()) { builder.add(key,formParams.get(key)); } //创建请求 request = new Request.Builder() .url(url) .post(builder.build()) .build(); } //发送请求 Response response = client.newCall(request).execute(); result = response.body().string().toString(); LogcatHelper.showLogCompletion("result: "+result,100); } catch (IOException e) { e.printStackTrace(); }catch (NullPointerException e) { e.printStackTrace(); } return result; } @Override protected void onPostExecute(String result) { super.onPostExecute(result); if(result ==null){ mCallBack.result(null,false); }else{ mCallBack.result(result,true); } } }}
1 0
- 【andorid】基于okhttp3网络请求帮助类(GET、POST)
- okhttp3简单封装GET和POST请求工具类
- 网络请求(get&&post)
- 网络请求(get Post)
- 使用OKHttp3 get请求 , post请求 , 多文件上传 , 包看包会
- 使用OKHttp3 get请求 , post请求 , 多文件上传 , 包看包会
- 网络请求get/post工具类:NetUtil
- 网络请求 Get & Post 方法(整理)
- OKHttp网络请求(get / post)
- HttpURLConection(get¥¥ post)网络请求+XListView
- 基于OkHttp3封装网络请求框架
- okhttp3(网络请求库)
- eclipse中网络设置及get和post请求(get请求或者post请求)
- 简单网络请求/GET请求/POST请求
- 网络请求,get和post
- Get和post网络请求
- volley网络请求,get/post
- 网络请求方式 POST + GET
- 使用@AutoWired替换struts2 Action中的get、set方法
- Android Studio2.0 教程从入门到精通MAC版 - 安装篇
- Android系统默认语言改为中文
- Android之socket编程
- java中的迭代器(Iterator)
- 【andorid】基于okhttp3网络请求帮助类(GET、POST)
- 微服务实战(一):微服务架构的优势与不足
- 时间处理工具类
- python2.7解决UTF-8 UnicodeEncodeError:'gbk' codec can't encode character u'\xa5' in position
- iOS 出现Image Not Found问题
- Redis入门
- 微服务实战(二):使用API Gateway
- 欢迎使用CSDN-markdown编辑器
- debug