解决java的http请求库dongliu.requests请求结果中文乱码的问题

本文介绍了在使用Java的http请求库dongliu.requests时遇到的中文乱码问题及解决方案。首先,作者讨论了为何选择requests库,然后详细描述了问题所在,即默认的编码设置无法正确解析中文响应数据。提出了两种解决方案:方案1是通过获取字节流并手动转换为指定编码的字符串;方案2是调整API调用顺序,避免因官方推荐的API变更导致的解码错误。最后,文章介绍了作者的相关信息和博客链接。
摘要由CSDN通过智能技术生成

前言

在前几天接到一个需求,需要爬取某个网站上的一些数据,并且经过整理后将爬取到的数据写入到数据库内。

这类需求如果不需要考虑太多性能的问题的话,使用 Python 来实现的效率是最高的,但考虑到后续可能需要作为模块整合至springboot 的应用内,所以还是决定使用 java 的库来进行开发。

在这之前了解到并且使用的 javahttp 库都是 okhttphttpclientRestTemplate 等,虽然这些库也简化了很多原生求的复杂配置过程,但对于一些需求还是需要自行去封装,操作体验和开发效率上都差了很多。

所以突发奇,在java庞大的生态里面,有无类似 pythonrequests 这类体验更好的 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值