我正在使用Linkedin Api。 在我的OAuthLinkedin.cs中, 我有以下内容:
public string WebResponseGet(HttpWebRequest webRequest)
{
StreamReader responseReader = null;
string responseData = "";
try
{
responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream());
responseData = responseReader.ReadToEnd();
}
catch
{
throw;
}
finally
{
webRequest.GetResponse().GetResponseStream().Close();
responseReader.Close();
responseReader = null;
}
return responseData
} 我的代码能够获得oauthToken,oauthTokenSecret
WebResponseGet(HttpWebRequest webRequest)失败了。 状态:System.Net.WebExceptionStatus.Protocol错误远程服务器返回错误:(401)未经授权。
在请求访问linkedin的权限后,它可以获得令牌密钥。 但我不确定这个未经授权的错误。是一些许可问题。 我在哪里查看
由于 太阳
答案 0 :(得分:2)
以下是您可以尝试确定问题根源的一些事项:
使用此OAuth测试控制台,将您生成的标头与此工具生成的标头进行比较: https://developer.linkedin.com/oauth-test-console 如果您的标题错误,那么LinkedIn将返回401状态
如果您在请求中将XML发布到LinkedIn,请确保内容类型(webRequest.ContentType)为“application / xml”而不是“application / x-www-form-urlencoded”,否则,LinkedIn将返回401状态。
答案 1 :(得分:0)
这也发生在我身上,但我弄清楚我做错了什么。
每当您创建签名时,请将Token和TokenSecret设为空。它对我有用,因为它从浏览器请求获得了旧的令牌和令牌秘密。
//Generate Signature
string sig = this.GenerateSignature(uri,
this.ConsumerKey,
this.ConsumerSecret,
this.Token,
this.TokenSecret,
method.ToString(),
timeStamp,
nonce,
out outUrl,
out querystring);