我们知道http请求包括三个部分即:状态行,请求首部、请求体。所以一些网络请求框架对数据的组织基本上都围绕着这三个部分进行展开,可谓万变不离其宗。Okhttp当然也不例外,在Okttp中用Request对象和ReqeustBody对象来分表一个请求及其请求所携带的请求体。
如果想了解原码可以在github上下载,地址是:okhttp源码
对应一个http请求来说,是否需要请求体(下文用ReqeustBody表示)是根求的方法来判定的,比如Get请求就不需要请求体,而post请求则需要请求体。
OkHttp请求步骤
1) OkHttpClient:新建一个OkHttpClient实例,用于处理请求。
2) Request:构建请求参数,如url,请求方式,请求参数,header等。
3) Call:生成一个具体请求实例,相当于将请求封装成了任务;两种方式:
call.execute(); //同步方式,会阻塞线程,等待返回结果。
call.enqueue(Callback); //异步方式。
4) Response:结果响应
HttpGet
1.同步http请求
对于同步请求在请求时需要开启子线程,请求成功后需要跳转到UI线程修改UI。
public void getDatasync(){
new Thread(new Runnable() {
@Override
public void run() {
try {
OkHttpClient client = new OkHttpClient();