在Android中使用OkHttp客户端时,标头值中出现意外的字符0x0a

时间:2017-03-26 07:22:17

标签: java android base64 retrofit okhttp

使用Http将Base64编码的字符串作为标头发送时,我收到错误响应

Unexpected char 0x0a at 28 in header value: I99Uy+HjG5PpEhmi8vZgm0W7KDQ=

用法:

String encodedHeader = Base64.encodeToString(value.getBytes(), Base64.DEFAULT); header.put("auth", encodedHeader);

1 个答案:

答案 0 :(得分:28)

0x0a是一个在标题中被禁止的换行符。 解决方案是确保在将编码值作为标题发送之前剥离这些字符。

Base64.encodeToString(credentials.getBytes(), Base64.NO_WRAP); 这可以避免使用特定于平台的换行符进行换行。