Java 在Android中使用OkHttp客户端时,标头值中出现意外字符0x0a
当使用Http发送Base64编码的字符串作为头时,我得到的错误响应为Java 在Android中使用OkHttp客户端时,标头值中出现意外字符0x0a,java,android,base64,retrofit,okhttp,Java,Android,Base64,Retrofit,Okhttp,当使用Http发送Base64编码的字符串作为头时,我得到的错误响应为 标题值中28处的意外字符0x0a:I99Uy+HjG5PpEhmi8vZgm0W7KDQ= 用法: String encodedHeader=Base64.encodeToString(value.getBytes(),Base64.DEFAULT); header.put(“auth”,encodedHeader)0x0a是头中禁止使用的换行符。 解决方案是确保在将编码值作为头发送之前去掉这些字符 Base64.encod
标题值中28处的意外字符0x0a:I99Uy+HjG5PpEhmi8vZgm0W7KDQ=
用法:
String encodedHeader=Base64.encodeToString(value.getBytes(),Base64.DEFAULT);
header.put(“auth”,encodedHeader)
0x0a
是头中禁止使用的换行符。
解决方案是确保在将编码值作为头发送之前去掉这些字符
Base64.encodeToString(credentials.getBytes(),Base64.NO_WRAP)代码>
这避免了使用平台特定的换行符进行换行。如果使用Okio的ByteString,base64更容易:encodedHeader=ByteString.encodeUtf8(value).base64()
@priyankvex感谢您的解决方案。它很有魅力。但我不明白“这避免了使用特定于平台的换行符包装”。你能让我明白这一点吗。谢谢:)