- Android中的网络通信
早期的Android框架中使用的是httpClient类进行网络通信
其中根本上使用的是Java框架中的httpUrlConnection类
但是直接使用httpClient并不是很方便,所以要借助于三方的框架进行更方便快捷的操作才行
android-async-http框架:
一个简易的异步网络连接库,其中封装了httpClient,但是android API23(6.0)版本中已经完全弃用了httpClient类,所以这个库现在已经不适用于android的网络通信开发了
Volley框架:
同样是一个异步的网络连接库,封装的是httpUrlConnection类,所以可以继续使用,但是完全不支持同步连接,并且不能用post方法传递过大的数据,所以上传文件这样的操作并不合适使用
okHttp框架:
是android官方现在推荐使用的网络通信框架,支持同步和异步的链接,实现了spdy、http2、websocket协议,API本身也很简单易用
- 网络开发名词解释
同步和异步:
同步,直观的来说就是当前任务没有结果前不会执行后续的操作,整个系统会处于等待状态
异步,就是系统无需等待异步任务,继续执行接下来的任务,当异步任务执行完成时通过状态、通知或者回调通知异步任务的调用者
get和post:
两种访问方式本质上几乎没有区别
GET方式主要用来获取数据,POST方式主要用来传送数据
GET方式将请求参数直接在地址栏中显示,POST不会显示,在一定程度上POST比GET安全一点
- Okhttp框架使用
主要使用的类:
- OkHttpClient okhttp中核心的类
- Request 请求类
- Call 呼叫类
- RequestBody 请求体类,用来包含请求参数
- Response 回复类
- 添加权限
我们的APP如果想要访问网络,就必须添加网络访问权限
<uses-permission android:name="android.permission.INTERNET" />
- 添加okhttp库依赖
在app下的build.gradle文件中添加
implementation 'com.squareup.okhttp3:okhttp:3.12.1'
- 代码实现
GET方式下的同步和异步
POST方式下的同步和异步