OkHttp的简单用法

时间:2023-01-31 07:28:05

开源盛行的今天,许多出色的网络通信库都可以代替原生的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()方法来发送请求并获取服务器返回的数据。

如果大家感觉需要源代码来理解的话,请加我微信。OkHttp的简单用法