12,162
社区成员
发帖
与我相关
我的任务
分享
string url = string.Format("http://social.yahooapis.com/v1/user/{0}/profile?format=json", YahooToken.xoauthYahooGuid);
,参考地址:http://developer.yahoo.com/oauth/guide/oauth-make-request.html,构造请求的那些数据,如nonce,timestamp,signature用的BaseOAuth类(http://oauth.googlecode.com/svn/code/csharp/OAuthBase.cs),授权过程中用的是PLAINTEXT方式,使用http://social.yahooapis.com/v1/user/{0}/profile?format=json api的时候用的是HMACSHA1方式。string nUrl, nParams;
string nonce = this.GenerateNonce();
string timestamp = this.GenerateTimeStamp();
string UrlData = string.Format("http://social.yahooapis.com/v1/user/" + YahooToken.xoauthYahooGuid + "/profile?format=json");
string signature = this.GenerateSignature(new Uri(UrlData), clientID, clientSecret, YahooToken.oauthToken, YahooToken.oauthTokenSecret, "GET", timestamp, nonce, out nUrl, out nParams);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(UrlData));
request.Method = "GET";
StringBuilder sb = new StringBuilder();
sb.Append("Authorization: OAuth ");
sb.Append("realm=\"yahooapis.com\"");
sb.Append(",oauth_consumer_key=\"" + clientID + "\"");
sb.Append(",oauth_nonce=\"" + nonce + "\"");
sb.Append(",oauth_signature_method=\"HMAC-SHA1\"");
sb.Append(",oauth_timestamp=\"" + timestamp + "\"");
sb.Append(",oauth_token=\"" + YahooToken.oauthToken + "\"");
sb.Append(",oauth_version=\"1.0\"");
sb.Append(",oauth_signature=\"" + this.UrlEncode(signature) + "\"");
request.Headers.Add(sb.ToString());
HttpWebResponse response = (HttpWebResponse)request.GetResponse();