JAVA使用okhttp简单获取数据

1,993 阅读2分钟

本文通过okhttp获取百度百科okhttp介绍信息,也就是这一块的信息

image.png

主要分为四步
1、 通过控制台找到对应的链接请求。
2、 构建请求
3、 发起请求拿到返回对象,获取返回对象中html页面
4、 解析html页面拿到所需要的值

获取链接请求

用浏览器打开 okhttp 百度百科,找到返回信息的链接信息

image.png

使用maven引入okhttp和解析页面所需要使用到的 jar包

<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>3.6.0</version>
</dependency>

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.8.3</version>
</dependency>

构建请求

// 创建OkHttpClient对象
OkHttpClient client = new OkHttpClient();
// 请求对应的百度百科地址
URL urlStr = new URL("https://baike.baidu.com/item/okhttp/20447138?fr=aladdin");
// 构建请求
Request request = new Request.Builder()
//请求接口。如果需要传参拼接到接口后面。
.url(urlStr)
// 请求类型
.get()
.build();

发起请求拿到返回对象,获取返回对象中html页面

// 创建 response 对象,用于获取返回信息
Response response = null;
// 发起请求,并拿到返回的 response
response = client.newCall(request).execute();
// 拿到返回的html代码,如果返回的是json信息可以直接转正对象
String jsong = response.body().string();

拿到请求 解析html页面拿到所需要的值

// 解析 html 页面,获取其数据
Document document = Jsoup.parse(jsong);
// 拿到对应class下面的内容
Elements divLemmaSummary = document.getElementsByClass("lemma-summary");
//根据 div 标签来划分,得到数据数组
Elements div = divLemmaSummary.select("div");
// 最后得到的okhttp数据信息
System.out.println(div.get(0).text());

最后获取的内容:

android网络框架之OKhttp 一个处理网络请求的开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso) [1]  用于替代HttpUrlConnection和Apache HttpClient(android API23 6.0里已移除HttpClient,现在已经打不出来)

最后的 Elements div 对象有4条数据,下标为0的内容如上,另外三个和页面显示的一样,一行就是一条数据,代码的功能作用都写在代码注释中了。

成功导入jar包,按顺序复制代码即可使用