先使用OkHttp把图片下载下来,再使用Glide显示图片。效果展示在最后面
一、OkHttp
- OkHttp官网地址:https://square.github.io/okhttp/
- OkHttp GitHub地址:https://github.com/square/okhttp
1.OkHttp的导入
在Moudle的gradle中添加
implementation("com.squareup.okhttp3:okhttp:4.2.0")
2.OkHttp的主要类
- OkHttpClient(请求客户端)
它的主要目的就是用来创建Call对象的,而这个Call对象是用来发起HTTP请求和读取返回结果的。 - Request
包装的一个HTTP请求 - Call
通过该类真正发起请求,取消请求,并且可以判断当前请求的状态。 - RequestBody
请求体 - Response
该类和Request构成了HTTP请求中的请求和响应。
3.关于Http协议
如果你用的是http访问网络,会报错。现在Android P全面禁止了非https链接(参考文章)
但是国内的很多网站都是非https的,怎么办呢?需要使用xml文件设置属性禁用掉这一设置,在res文件夹下新建目录xml,然后创建文件network_security_config.xml(文件名随意):
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
然后在AndroidManifest.xml文件的Application标签添加属性:
<application
...
android:networkSecurityConfig="@xml/network_security_config">
</application>
问题解决
4.简单案例
下载相关代码:
private void download() {
String url="https://sf6-ttcdn-tos.pstatp.com/img/ee-finolhu/034e2e9d3cfe49f8bb0a3367c9afec47~noop.image";
//1.创建OkHttpClient对象
OkHttpClient client=new OkHttpClient();
//2.创建请求对象Request
Request request=new Request.Builder()
.url(url)
.build();
//3.执行请求
Call call = client.newCall(req