1

我正在使用 API,它需要这样的标头:

授权:ClientKey keyhere
授权:UserKey key2here

当我将此参数添加到 RestSharp 的请求时,如下所示:

request.AddHeader("Authorization", "ClientKey 111111");
request.AddHeader("Authorization", "UserKey 222222");

我明白了,只写了最后一个。这是因为他们有相同的密钥。但是我该如何避免呢?

我知道,这是服务器端的错误行为,但此代码已在其他平台的生产中使用。

更新

我找到了解决方案:

request.AddHeader("Authorization", "ClientKey 111111, UserKey 222222");
4

1 回答 1

3

请参阅第14.8节HTTP RFC 的授权:

希望通过服务器验证自己的用户代理(通常但不一定在收到 401 响应后)通过在请求中包含 Authorization 请求头字段来实现。

另见3.2.2 RFC 2617 的授权请求标头部分:

客户端将重试请求,传递一个根据上述框架定义的 Authorization 标头行,使用如下。

两个引文都谈到an和标题。根据 RFC,可以多次设置标头。但是服务器将无法根据 RFC 选择包含凭据的一个标头。Authentication

服务器仅使用一个(最后一个此类标头)即可正常工作。你的客户坏了。

于 2012-11-05T12:10:59.673 回答