2011-09-26 159 views
0

我正在开发Linkedin Api。 在我OAuthLinkedin.cs, 我有以下几点:Linkedin Api远程服务器返回错误:(401)未授权

 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

希望你在这篇文章中匿名化你的令牌机密;-) – kroonwijk

回答

2

这里有几件事情,你可以尝试找出你的问题的根源:

  • 使用此OAuth的试验台和比较您正在生成的标题为该工具生成的标题: https://developer.linkedin.com/oauth-test-console 如果您的标题有误,则LinkedIn将返回401状态

  • 如果您要求在LinkedIn中发布XML,请确保内容类型(webRequest.ContentType)为“application/xml”,而不是“application/x-www-form-urlencoded”,否则,LinkedIn将返回401状态。

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); 
相关问题