【发布时间】:2011-11-16 04:51:00
【问题描述】:
我正在尝试通过 oAuth 获取 LinkedIn API 的 RequestToken。我已经尝试了很多事情,并阅读了我能找到的与该主题相关的所有文档,并尝试了所有我能想到的解决方案。
我使用的代码如下:
public Dictionary<string, string> GetAccessToken()
{
Dictionary<string, string> tokens = new Dictionary<string, string>();
string url = string.Format("https://api.linkedin.com/uas/oauth/requestToken");
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
string header = string.Format(@"OAuth oauth_nonce=""{0}"", oauth_signature_method=""{1}"", oauth_timestamp=""{2}"", oauth_consumer_key=""{3}"", oauth_signature=""{4}"", oauth_version=""{5}""",
HttpUtility.UrlEncode(GenerateNonce()), HttpUtility.UrlEncode(getSignatureMethod()), HttpUtility.UrlEncode(GenerateTimeStamp()), HttpUtility.UrlEncode(getClientID()), HttpUtility.UrlEncode(getClientSecret()), HttpUtility.UrlEncode(getVersion()));
request.Headers.Add("Authorization", header);
request.Method = "POST";
HRArtis_Security.MyProxy HRProxy = new HRArtis_Security.MyProxy();
request.Proxy = HRProxy;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
StreamReader reader = new StreamReader(response.GetResponseStream());
string retVal = reader.ReadToEnd();
foreach (string token in retVal.Split('&'))
{
tokens.Add(token.Substring(0, token.IndexOf("=")),
token.Substring(token.IndexOf("=") + 1, token.Length - token.IndexOf("=") - 1));
}
}
return tokens;
}
然后我对该 URL 执行 POST。
尝试使用 HttpWebResponse response = request.GetResponse() as HttpWebResponse 行获取响应时发生错误
我尝试的另一个选项是将这些参数添加到标题中,但没有结果。
我是错过了什么还是我是个白痴?
【问题讨论】: