2017-07-20 29 views
1

我使用下面的代码从一个URL,但授权领域的授权头一个HTTP请求的Authorization头签名的OAuth请求总是返回空获取在c#

string url = "https://xyz.appdirect.com/api/integration/v1/events/abc-123"; 
      HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url); 
      string value = httpWebRequest.Headers["Authorization"]; 

还当我跟着MSDN代码,我得到一个空值的标头

WebRequest request = WebRequest.Create(url); 
      request.Method = WebRequestMethods.Http.Get; 
      NameValueCollection authHeader = request.Headers; 

      if (authHeader.Count > 0) 
      { 
       foreach (string strKey in authHeader) 
       { 
        string s = strKey + " = " + request.Headers[strKey] + "<br />\n"; 
        Console.WriteLine(String.Format(" Key Value header: {0}", authHeader[strKey])); 

       } 
      } 
      else 
      { 
       Console.WriteLine(String.Format("No headers found")); 

      } 

什么是获得授权头的正确方法?

回答

0

简单的解决办法是让从HttpContext的头,但我复杂它做其他的事情,而不是直接从HTTP上下文读它

NameValueCollection authHeader = HttpContext.Current.Request.Headers; 
        foreach (string strKey in authHeader) 
        { 

         _logger.Info(String.Format(" Key Value header: {0}", authHeader[strKey])); 

        }