我正在使用高级REST客户端应用程序(Chrome插件)使用HTTP标头执行身份验证,它可以正常运行。
X-Username: member
X-Password: abc123
但是,当我尝试使用非英语用户名时
X-Username: 阿里巴巴
X-Password: abc123
我收到以下错误
Unable set request header: X-Username: 阿里巴巴
如果可能,如何设置请求标头以使用中文字符?
答案 0 :(得分:1)
根据规范RFC 7230(HTTP 1.1):
历史上,HTTP允许字段内容包含文本 ISO-8859-1 charset [ISO-8859-1],仅支持其他字符集 通过使用[RFC2047]编码。在实践中,大多数HTTP标头 字段值仅使用US-ASCII字符集[USASCII]的子集。 新定义的标题字段应该将其字段值限制为 US-ASCII八位字节。收件人应该在字段中处理其他八位字节 内容(obs-text)为不透明数据。
也就是说,凭证有一个标准的HTTP标头,Authorization
。您可以使用基本身份验证,其内容将使用base64编码:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Basic
之后的值是字符串username:password
的编码值。有关此类机制的更多详细信息,请参阅以下链接:https://en.wikipedia.org/wiki/Basic_access_authentication。
有关详细信息,请参阅此答案:What encoding should I use for HTTP Basic Authentication?。
希望它可以帮到你, 亨利