开源盛行的今天,许多出色的网络通信库都可以代替原生的HttpURLConnection,而今天我们就介绍下OkHttp的简单用法。
OkHttp的项目主页地址是:http://github.com/square/okhttp.
在使用OkHttp之前,我们需要添加OkHttp库的依赖。
compile 'com.squareup.okhttp3:okhttp:3.4.1'
添加上述依赖会自动下载两个库,一个是OkHttp库,一个是Okio库,后者是前者的通信基础。
接下来我们就步入正题,讲一下OkHttp的具体用法。
一,实例化一个OkHttpClient的实例。
二,如果想发送一条HTTP请求,就需要创建一个Request对象。
OkHttpClient client=new OkHttpClient();
Request request=new Request.Builder()
.url("http://www.baidu.com")
.build();
我们可以在最终的build()方法之前连缀很多方法来丰富Request对象,这里我们通过URL()方法来设置目标的网络地址。
三,调用OkHttpClient的newCall()方法来创建一个Call对象,并调用它的execute()方法来发送请求并获取服务器返回的数据。
Response response=client.newCall(request).execute();
Response对象就是服务器返回的数据,我们通过下面方法来获得返回的具体的内容。
String responseData=response.body().string();
这里剩下的代码和我上一篇的博客一样,所以其他代码大家可以翻阅我的上一篇博客。
上面讲的是从服务器得到数据,接下来我们说下如何用OkHttp向服务器提交数据。
一,首先构建一个RequestBody对象来存放待提交的参数,如下所示:
RequestBody requestbody=new FormBody()
.add("username","admin")
.add("password","123456")
.build();
二,在Request.Builder中调用一下post()方法,并将RequestBody对象传入:
Request request=new Request.Builder()
.url("http://www.baidu.com")
.post(requestBody)
.build();
三,调用execute()方法来发送请求并获取服务器返回的数据。