前言
在前几天接到一个需求,需要爬取某个网站上的一些数据,并且经过整理后将爬取到的数据写入到数据库内。
这类需求如果不需要考虑太多性能的问题的话,使用 Python
来实现的效率是最高的,但考虑到后续可能需要作为模块整合至springboot
的应用内,所以还是决定使用 java
的库来进行开发。
在这之前了解到并且使用的 java
的 http
库都是 okhttp
、httpclient
、RestTemplate
等,虽然这些库也简化了很多原生求的复杂配置过程,但对于一些需求还是需要自行去封装,操作体验和开发效率上都差了很多。
所以突发奇,在java庞大的生态里面,有无类似 python
的 requests
这类体验更好的 http
请求库? 经过一番搜索后,在 github
上找到了与该库同名的一个 http
库,该模块的作者的灵感也同样来自于 Python 的第三方 库 requests
,描述如下
Requests is a http request lib with fluent api for java, inspired by the python request module. Requests requires JDK 1.8+, the last version support Java7 is 4.18.* .
一个具有流畅java api的http请求库,灵感来自python请求模块。请求需要JDK 1.8+,最后一个支持Java7的版本是4.18.* (中文为机器翻译)
经过一番体验后,该模块确实提供了很多便捷的java api,简化了大量的配置流程。
具体的使用方法,参考该模块的开源仓库:https://github.com/hsiafan/requests
问题描述
请求返回的数据内包含了中文,而 Requests
模块默认使用的是 utf-8
编码来解析响应的数据,代码如下
public class RequestsDemo {
public static void main(String[] args) {
String url = "http://example.com/index.asp";
//请求头
Map<String, Object> headers = new HashMap<>();
headers