在上一篇博客中,我们介绍了OkHttp的快速集成和使用,其中提到了有关于使用
post
请求提交字符串/文件/表单
等需要使用到OkHttp中的底层传输框架OkIo。鉴于框架的功能划分,这篇博客专门讲解OkIo的常用api和应用场景。当然,考虑到OkIo和OkHttp一般是搭配使用的,所以这里的演示更多是网络传输场景。若想使用OkIo做为一个专门用来流传输的框架,可以参考官方文档:OkIo,其中有更详细的使用方法。
OkIo库是一个由square公司开发的,它补充了java.io和java.nio的不足,以便能够更加方便,快速的访问、存储和处理你的数据。而OkHttp的底层也使用该库作为支持。而在开发中,使用该库可以大大给你带来方便。
2.特性紧凑的封装:是对Java IO/NIO 的一个非常优秀的封装,绝对的“短小精焊”,不仅支持文件读写,也支持Socket通信的读写。
使用简单:不用区分字符流或者字节流,也不用记住各种不同的输入/输出流,统统只有一个输入流Source和一个输出流Sink,它们之间所包含的主要api如图所示:
另外:如果你的Android版本为Android P(即targetSdkVersion 27),在运行该项目时可能会报有关网络的错误,如图所示:
然后,在AndroidManifest中增加
android:networkSecurityConfig
属性,代码如下:
以上两个步骤就完成了网络安全配置,如果实在不行的话可以尝试另外两种方法或者百度
3.3 布局文件和URL封装
接下来,我们直接开始布局文件activity_main.xml的编写。该布局很简单,仅有四个按钮,代码如下:
之后,我们简单用字符串封装一下要请求的URL。与上一篇博客不同的是,为了模拟出网络传输的效果,这里架设一个本地服务器,然后将相应URL进行封装,代码如下(服务器URL不固定,根据自己的服务器路径名进行相应修改):
private static final String URL = "http://10.0.2.2:8080/androidframelearn/";
另外:如果你的Android版本为Android M(即targetSdkVersion 23),在运行该项目时可能会报有关网络的错误,如图所示:
原创文章 272获赞 79访问量 6万+
关注
私信
展开阅读全文
作者:赈川