Exc*_*ion 5 android http http-headers okhttp
我使用 okhttp 从我的 Android 代码发送拉丁字符作为 HTTP 标头
\nBuilder builder=new Builder();\nbuilder.url(myURL);\nbuilder.addHeader("Original-Filename", "t\xc3\xaate-\xc3\xa0-t\xc3\xaate.pdf");\nRun Code Online (Sandbox Code Playgroud)\n但是,我越来越IllegalArgumentException: Unexpected char 0xea1
我可以从 Postman 或使用HttpsURLConnection. 此外,根据HTTP1.1 文档,该字符是一种例外的标头格式,该字符是例外的标头格式。
那么,为什么okHttp不支持以下字符呢?另外,是否有任何解决方法,无需通过执行 Base64 编码和解码来更改服务器端的代码。
\n我使用的是 okttp 版本 4.4.0。另外,我已经浏览过https://github.com/square/okhttp/issues/2016另外,在有人重复同样的事情之前,
\n对于任何寻找答案的人来说,我找到了答案。
\n\n我们可以使用addUnsafeNonAscii来解决这个问题。
\n\n下面是它的简单代码片段
\n\nHeaders headers = new Headers.Builder()\n.addUnsafeNonAscii("Original-Filename", "t\xc3\xaate-\xc3\xa0-t\xc3\xaate.pdf")\n.build();\nRun Code Online (Sandbox Code Playgroud)\n\n通过这样做,我们可以避免服务器端的更改,尽管从长远来看,建议在客户端使用 Base64 编码并在服务器端进行解码。
\n| 归档时间: |
|
| 查看次数: |
2590 次 |
| 最近记录: |