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

Asp.net Linkedin Api远程服务器返回错误:(401)未经授权,asp.net,Asp.net,我正在开发Linkedin Api。 在我的OAuthLinkedin.cs中, 我有以下资料: public string WebResponseGet(HttpWebRequest webRequest) { StreamReader responseReader = null; string responseData = ""; try {

我正在开发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(HttpWebRequestWebRequest)是它失败的地方。 状态:System.Net.WebExceptionStatus.Protocol error远程服务器返回错误:(401)未经授权

在请求访问linkedin的权限后,它能够获得令牌机密。 但我不确定这个未经授权的错误。这是许可问题吗。 我在哪里查这个

谢谢
Sun

以下是一些您可以尝试找出问题根源的方法:

  • 使用此OAuth测试控制台并将您正在生成的头与此工具生成的头进行比较: 如果您的标题错误,LinkedIn将返回401状态

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


    • 这件事也发生在我身上,但我发现我做错了什么

      无论何时创建签名,都将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);
      

      希望你在这篇文章中匿名透露你的象征性秘密;-)