OkHttpClient请求
2017-09-21 21:02
363 查看
//OKHttp请求依赖 compile 'com.squareup.okhttp3:okhttp:3.9.0'
public class App extends Application { //OkHttpClient实例是唯一的, 所有的请求都会通过这个OkHttpClient,所以所有的请求都可能被拦截器拦截, // 我们可以在这个必经之路,做一些通用的操作,比如打印日志. private static OkHttpClient okHttpClient; @Override public void onCreate() { super.onCreate(); //建议一个app只有一个OkHttpClient实例 okHttpClient = new OkHttpClient(); okHttpClient = okHttpClient.newBuilder() .connectTimeout(10, TimeUnit.SECONDS) .readTimeout(10, TimeUnit.SECONDS) .addInterceptor(new MyLogInterceptor())//拦截器 .build(); } public static OkHttpClient okHttpClient() { return okHttpClient; } //拦截器,可以修改header,可以通过拦截器打印日志 public class MyLogInterceptor implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { Request request = chain.request().newBuilder() .header("shenfenyanzheng", "zhangsan") .build(); HttpUrl url = request.url(); String httpUrl = url.url().toString(); Response response = chain.proceed(request); int code = response.code(); return response; } } }
//在方法中使用
//异步,所以的回调方法里面都是分线程.不能更新ui //request 设置url Request request = new Request.Builder() .url("http://www.baidu.com") .build(); App.okHttpClient().newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "get失败", Toast.LENGTH_SHORT).show(); } }); } @Override public void onResponse(Call call, Response response) throws IOException { if (response.isSuccessful()) { //得到Json串 String json = response.body().string(); //用Gson解析 runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "成功", Toast.LENGTH_SHORT).show(); } }); } else { //提示用户 runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "失败", Toast.LENGTH_SHORT).show(); } }); } } });
相关文章推荐
- OkHttpClient 请求超时问题-------以解决
- 使用OkHttpClient处理json请求处理的方式
- OkHttpClient疑虑之execute()与enqueue()同步与异步请求
- OkHttpClient GET与POST请求
- OkHttpClient请求数据
- OKHttpClient的POST请求
- Mvp设计模式实现okHttpClient请求展示在RecycleView
- OkHttpClient get请求
- OkHttpClient请求网络数据
- OkHttpClient带多个参数的get请求
- okHttpClient异步同步的get和post请求方法
- 常用的几种网络请求OkHttpClient , HttpClient和 HttpURLConnection
- Android发送post请求的两种写法(okHttp&&httpClient)
- okHttpClient get请求基本使用
- OkHttpClient post请求今日头条数据 RecycleView显示
- OkHttpClient 进行网络请求
- 安卓使用OkHttpClient进行网络请求
- HttpClient的post请求
- OkHttpClient使用示例
- 【Angular】angular-HttpClient 与服务器通讯 Get Post Put Delete Http 拦截器 请求讲解