OkHttpClient请求数据
来源:互联网 发布:josh jackson数据 编辑:程序博客网 时间:2024/05/15 12:31
//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(); } }); } } });
阅读全文
0 0
- OkHttpClient请求数据
- OkHttpClient请求
- OkHttpClient get请求
- OKHttpClient的POST请求
- OkHttpClient网络请求
- OkHttpClient GET与POST请求
- OKHttpClient
- OkHttpClient
- OkHttpClient
- 安卓使用OkHttpClient进行网络请求
- OkHttpClient带多个参数的get请求
- OkHttpClient 请求超时问题-------以解决
- OkHttpClient疑虑之execute()与enqueue()同步与异步请求
- 常用的几种网络请求OkHttpClient , HttpClient和 HttpURLConnection
- okHttpClient异步同步的get和post请求方法
- Retrofit+OkHttpClient+Fresco+XRecyclerView+RxJava实现数据展示
- Android OkHttpClient
- OKhttpclient使用
- Glide加载图片
- WebApplication和WebSite网站的区别
- 继续深造~
- 计蒜客
- stm32存储结构& 存储器映射
- OkHttpClient请求数据
- 异步请求数据展示到xlistview
- 【正一专栏】9月9日深刻缅怀毛主席-做毛主席的好学生
- ARM 汇编指令条件执行详解
- vs2010使用WebDeploymentSetup.msi发布website网站
- 1046. 划拳(15)
- cpu占有率实验
- 在windows的git上用ssh-add添加私钥id_rsa报错——Could not open a connection to your authentication agent.
- erzhou