Linkedin Api远程服务器返回错误:(401)未经授权

时间:2011-09-26 21:38:32

标签: asp.net

我正在使用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的权限后,它可以获得令牌密钥。 但我不确定这个未经授权的错误。是一些许可问题。 我在哪里查看

由于 太阳

2 个答案:

答案 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);