【问题标题】:Using HttpRequestHeaders in WinRT & C#在 WinRT 和 C# 中使用 HttpRequestHeaders
【发布时间】:2012-06-08 13:57:32
【问题描述】:

我正在使用 HttpWebRequests 联系 API 并需要添加标头,但编译器告诉我该方法不存在。 然而,当我查看 MSDN 时,它告诉我该方法已经存在。 设置我的 UserAgent-property 也失败了。

谁能帮帮我?

try{
     HttpWebRequest wr = (HttpWebRequest)HttpWebRequest.Create(url);
     wr.Method = "GET";

     wr.Headers.Add(System.Net.HttpRequestHeader.Authorization, string.Format("Bearer {0}", _accessToken));
     wr.UserAgent = _appNameAndContact;

     var resp = (System.Net.HttpWebResponse) await wr.BetterGetResponse();
     if (resp.StatusCode == System.Net.HttpStatusCode.OK)
     {
        using (var sw = new System.IO.StreamReader(resp.GetResponseStream()))
        {
             var msg = sw.ReadToEnd();

             User usr = JsonConvert.DeserializeObject<User>(msg);

              //var results = JSONHelper.Deserialize<User>(msg);

              return usr;
              }
        }
}

【问题讨论】:

  • 请与我们分享确切的错误消息和您正在使用的 Windows 8 版本。
  • 我正在使用 Release Preview,编译器告诉我方法 .Add() 不存在

标签: c# httpwebrequest http-headers windows-8 windows-runtime


【解决方案1】:

您必须像这样使用HttpRequestMessage

  using (var httpClient = new HttpClient())
  {
    var url = new Uri("http://bing.com");
    var accessToken = "1234";
    using (var httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, url))
    {
      httpRequestMessage.Headers.Add(System.Net.HttpRequestHeader.Authorization.ToString(),
        string.Format("Bearer {0}", accessToken));
      httpRequestMessage.Headers.Add("User-Agent", "My user-Agent");
      using (var httpResponseMessage = await httpClient.SendAsync(httpRequestMessage))
      {
        // do something with the response
        var data = httpRequestMessage.Content;
      }
    }
  }

【讨论】:

猜你喜欢
  • 2011-11-18
  • 1970-01-01
  • 2018-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-17
  • 2015-12-22
  • 2018-03-14
相关资源
最近更新 更多