Yahoo Messenger API-参数_缺失:oauth_签名

Yahoo Messenger API-参数_缺失:oauth_签名,oauth,yahoo,Oauth,Yahoo,我已经好几天没办法解决这个问题了,有人有什么想法吗?下面是Fiddler显示的请求响应 响应是oauth_签名不存在,不管它是如何发送的。如果我计算的签名不正确,我会认为签名无效 我觉得问题就在眼前,但我看不出来 GET http://developer.messenger.yahooapis.com /v1/session HTTP/1.1 Authorization: OAuth realm: "yahooapis.com" oauth_version: "1.0" oaut

我已经好几天没办法解决这个问题了,有人有什么想法吗?下面是Fiddler显示的请求响应 响应是oauth_签名不存在,不管它是如何发送的。如果我计算的签名不正确,我会认为签名无效 我觉得问题就在眼前,但我看不出来

GET      http://developer.messenger.yahooapis.com    /v1/session HTTP/1.1
Authorization: OAuth
realm: "yahooapis.com"
oauth_version: "1.0"
oauth_token: "The oauth token "
oauth_nonce: "4724376"
oauth_timestamp: "1449488987"
oauth_consumer_key: "My consumer key"
oauth_signature_method: "HMAC-SHA1"
oauth_signature: "oBjiENcrXBX6I5dE/Vr7AHj2FOA="
Content-Type: application/json;charset=utf-8
Host: developer.messenger.yahooapis.com

HTTP/1.1 401 Authorization Required
Date: Mon, 07 Dec 2015 11:49:34 GMT
WWW-Authenticate: OAuth oauth_problem="parameter_absent:      oauth_signature", realm="yahooapis.com"
Connection: close
Transfer-Encoding: chunked
Content-Type: application/xml
Cache-Control: private

17b
<?xml version='1.0' encoding='UTF-8'?>

Please provide valid credentials.  OAuth oauth_problem="parameter_absent:     oauth_signature", realm="yahooapis.com"
GEThttp://developer.messenger.yahooapis.com    /v1/session HTTP/1.1
授权:OAuth
领域:“yahooapi.com”
oauth_版本:“1.0”
oauth_令牌:“oauth令牌”
oauth_nonce:“4724376”
oauth_时间戳:“1449488987”
oauth_消费者_密钥:“我的消费者密钥”
oauth_签名_方法:“HMAC-SHA1”
oauth_签名:“oBjiENcrXBX6I5dE/Vr7AHj2FOA=”
内容类型:application/json;字符集=utf-8
主持人:developer.messenger.yahooapi.com
需要HTTP/1.1 401授权
日期:2015年12月7日星期一11:49:34 GMT
WWW-Authenticate:OAuth-OAuth\u problem=“parameter\u缺席:OAuth\u签名”,realm=“yahooapi.com”
连接:关闭
传输编码:分块
内容类型:application/xml
缓存控制:专用
17b
请提供有效的凭据。OAuth OAuth_problem=“参数_缺失:OAuth_签名”,realm=“yahooapi.com”
非常感谢 Jon发现了问题: 我正在为每个身份验证项创建一个新的请求头。所有OAuth令牌必须放在同一个头中。即授权标题

下面的代码是我如何添加和创建授权头的,现在可以正常工作了

string OAuthHeader = "OAuth realm=\"yahooapis.com\"," +
            "oauth_consumer_key=\"" + consumerkey + "\"," +
            "oauth_timestamp=\"" + timestamp + "\"," +
            "oauth_nonce=\"" + nonce + "\"," +
            "oauth_version=\"1.0\"," +
            "oauth_signature_method=\"PLAINTEXT\"," +
            "oauth_token=\"" + dictGetRequestTokenParams["oauth_token"] + "\"," +
            "oauth_signature=\"" + consumerSecret + "%26" + dictGetRequestTokenParams["oauth_token_secret"] + "\",";

        request.Headers.Add(HttpRequestHeader.Authorization, OAuthHeader);
发现问题: 我正在为每个身份验证项创建一个新的请求头。所有OAuth令牌必须放在同一个头中。即授权标题

下面的代码是我如何添加和创建授权头的,现在可以正常工作了

string OAuthHeader = "OAuth realm=\"yahooapis.com\"," +
            "oauth_consumer_key=\"" + consumerkey + "\"," +
            "oauth_timestamp=\"" + timestamp + "\"," +
            "oauth_nonce=\"" + nonce + "\"," +
            "oauth_version=\"1.0\"," +
            "oauth_signature_method=\"PLAINTEXT\"," +
            "oauth_token=\"" + dictGetRequestTokenParams["oauth_token"] + "\"," +
            "oauth_signature=\"" + consumerSecret + "%26" + dictGetRequestTokenParams["oauth_token_secret"] + "\",";

        request.Headers.Add(HttpRequestHeader.Authorization, OAuthHeader);