OKHTTP 3.12.0 以后版本 headers 中不可携带中文

今天遇到的报错:

java.lang.llegalArgumentException: Unexpected char 0x957f at 0 in x-brand value: 电视

堆栈
okhttp3.Headers.checkValue(Headers.java:272)
okhttp3.Headers$Builder.add(Headers.java:312)
okhttp3.Request$Builder.addHeader(Request.iava:196)

查了下源码,才发现 okhttp 在 3.12.0 版本开始,在okhttp3的 Headers 中新增了一组函数:

传入中文开始会无法通过检查而 crash

在 Unicode 字符集中,\u001f\u007f 之间包含了一些特殊字符、标点符号、数字、大写字母、小写字母以及其他常见的 ASCII 字符。这个范围通常是指 ASCII 控制字符和可打印字符。

以下是 \u001f\u007f 之间的一些常见字符:

  • ASCII 控制字符(\u0000\u001f):

    • \u001f: Unit Separator
    • \u001e: Record Separator
    • \u001d: Group Separator
    • 等等
  • 可打印 ASCII 字符(\u0020\u007e):

    • 空格 
    • 数字 0-9
    • 大写字母 A-Z
    • 小写字母 a-z
    • 标点符号 , . ! ? 等等

这个范围包括了 ASCII 字符集中的大部分常用字符,涵盖数字、字母、标点符号以及一些特殊字符。在文本处理和编程中,这些字符通常被认为是可打印字符或者基本的控制字符。

 

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OkHttp是一个开源的HTTP客户端库,由Square公司开发,主要用于发送网络请求和处理HTTP响应。它可以用于Android和Java平台,并提供了简单易用的API,使得网络请求变得简单和高效。 OkHttp版本可以分为两个方面:主要版本和支持库版本。 主要版本OkHttp的主要版本指的是核心库的版本号,它包含了OkHttp的基本功能和特性。目前最新的主要版本OkHttp3,它引入了许多新特性和优化,如支持HTTP/2协议、连接池管理、自动重定向和Gzip压缩等。 支持库版本OkHttp的支持库版本是指与其他库或框架的集成版本号,它可以与其他库一起使用,以提供更高级的功能和扩展。支持库版本通常以主要版本号和次要版本号来表示。例如,OkHttp3.12.0是以主要版本号3和次要版本号12表示的支持库版本。支持库版本与主要版本保持兼容,因此可以使用OkHttp的较新版本与较旧版本进行集成。 Okio是一个用于处理I/O操作的库,也由Square公司开发。它提供了高效、灵活和易于使用的API,用于处理流和字节。Okio的版本同样分为主要版本和支持库版本。 主要版本:Okio的主要版本指的是核心库的版本号,它包含了Okio的基本功能和特性。当前的主要版本是Okio2,它在Okio的基础上做了一些改进和优化,提供了更好的性能和可靠性。 支持库版本:Okio的支持库版本是指与其他库或框架的集成版本号,用于提供更高级的功能和扩展。支持库版本通常以主要版本号和次要版本号来表示。例如,Okio2.9.0是以主要版本号2和次要版本号9表示的支持库版本。支持库版本与主要版本保持兼容,因此可以使用Okio的较新版本与较旧版本进行集成。 总结来说,OkHttp和Okio都是Square公司开发的优秀库,用于简化网络请求和I/O操作。它们的版本分为主要版本和支持库版本,可以根据需求选择合适的版本来使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值