web-dev-qa-db-fra.com

Caractère inattendu 0x0a dans la valeur d'en-tête lors de l'utilisation du client OkHttp dans Android

Lorsque j'envoie une chaîne encodée en Base64 comme en-tête à l'aide de Http, j'obtiens une réponse d'erreur comme

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

Utilisation:

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

19
priyankvex

0x0a Est un caractère de nouvelle ligne qui est interdit dans un en-tête. La solution serait de s'assurer que ces caractères sont supprimés avant d'envoyer la valeur codée en tant qu'en-tête.

Base64.encodeToString(credentials.getBytes(), Base64.NO_WRAP); cela évite le wrapping avec un caractère de nouvelle ligne spécifique à la plate-forme.

38
priyankvex