前言
okhttp很常用的一个网络请求框架,因此记录一下如何使用,然后走一下源码流程。这篇只是简单记录一下okhttp的同步和异步请求。
好记性不让烂笔头
正文
同步和异步初始化都一样,只是最后调佣的方法不一样。这里只是简单记录,因此直接上代码。
在Module的build.gradle中引入对应的库
implementation 'com.squareup.okhttp3:okhttp:3.12.0'
有高版本,自行去官网查看。
因为前期都一样,因此都统一写相同部分。
创建OkHttpClient
OkHttpClient client = new OkHttpClient();
当然也可以用Builder
OkHttpClient client = new OkHttpClient .Builder() //可添加其他的配置 .build();
创建Request
Request request = new Request. Builder() .get() .url("https://www.91es.com/") .build();
创建Call
其实就是对request的封装
Call call = client.newCall(request);
同步或异步
同步和异步的调用方式不一样了。
同步
Response response = call.execute(); if (!response.isSuccessful()) { throw new IOException(response); } Headers responseHeaders = response.headers(); //略
异步
call.enqueue(new Callback() { @Override public void onFailure(@NonNull Call call, @NonNull IOException e) { //失败 子线程中 } @Override public void onResponse(@NonNull Call call, @NonNull Response response) { //成功 子线程中,可以IO操作 } });
参考文章
-
《
历史上的今天
暂无评论...
随机推荐
Launcher2导入Eclipse
在分析源码中,除了使用Source Insight 这个强大的软件外,有些应用还是用编译器看源码是最好的,因此今天我们学习一下如何导入源码到Eclipse中。这里主要是讲正确把Android 6.0 的Launcher2 导入Eclipse中并运行和安装应用。工具: Eclipse,L...
adb查询和改变ContentProvider的值
前言项目中有用ContentProvider存储自定义的属性值,为了方便调试,因此想用adb shell 通过命令改变查看效果。其实之前也记录过相关的,只是没有亲自试验,摘抄文章《[摘]adb命令行查询content-provider -91易搜 - 阅读是一种生活方式 ()》。今天有空,重...
Link of class 'Lcom.....;' failed
问题描述导入同事修改的系统应用后编译成功,但运行起来后就异常了。Link of class 'Lcom/.....;' failed异常完整日志W/dalvikvm( 5955): Link of class 'Lcom/la/music/PlayFragment;' failedW/...
柴静:真相常流失于涕泪交加中
一美国有一个著名的白宫记者,叫海伦.托马斯,逼问过9任总统,进攻性极强,后来白宫特别在新闻厅给她专门设了把椅子,上面用小铜牌刻着她名字,又用她的名字命名了一个奖项,盛誉极隆。她八十多岁的时候在书里回忆自己职业生涯,曾经感叹美国新闻业的萧条,说“不知畏惧,不带好恶地去报道,美国的新闻人忘了吗?”...
[摘]js中对函数设置默认参数值的3种方法
在javascript中如何为函数设置默认参数值,下面提供几种方法供大家参考。第一种方法:function example(a,b){ var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1 var b = argume...
[摘]Android音频焦点处理
概要Android系统允许多个应用同时播放音频,这种特性有利有弊。例如当我们正在听音乐的时候突然点开了一个视频,如果我们发现音乐的声音和视频的的声音混合了在一起,这显然让我们非常不爽。而如果我们在播放音乐的时候,突然来了一条信息,这个时候,我们既希望能听到短信的提示音,又不希望音乐此刻停止,而是...