在使用WinRT的&放HttpRequestHeaders; C# [英] Using HttpRequestHeaders in WinRT & C#

查看:170
本文介绍了在使用WinRT的&放HttpRequestHeaders; C#的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用HttpWebRequests联系的API,并需要添加一个头,但是编译器告诉我,该方法不存在。
然而,当我检查MSDN,它告诉我,该方法已经存在。
设置我的UserAgent属性也将失败。



谁能帮我吗?



  {试
HttpWebRequest的WR =(HttpWebRequest的)HttpWebRequest.Create(URL);
wr.Method =GET;

wr.Headers.Add(System.Net.HttpRequestHeader.Authorization,的String.Format(承载{0},_accessToken));
wr.UserAgent = _appNameAndContact;

VAR RESP =(System.Net.HttpWebResponse)等待wr.BetterGetResponse();
如果(resp.StatusCode == System.Net.HttpStatusCode.OK)
{
使用(VAR SW =新就是System.IO.StreamReader(resp.GetResponseStream()))
{
变种味精= sw.ReadToEnd();

的用户USR = JsonConvert.DeserializeObject<使用者>(MSG);

// VAR的结果= JSONHelper.Deserialize<使用者>(MSG);

返回USR;
}
}
}


解决方案

您必须使用 HttpRequestMessage 是这样的:

 使用(VAR的HttpClient =新的HttpClient())
{
VAR URL =新的URI(http://bing.com);
VAR的accessToken =1234;使用
(VAR httpRequestMessage =新HttpRequestMessage(HttpMethod.Get,URL))
{
httpRequestMessage.Headers.Add(System.Net.HttpRequestHeader.Authorization.ToString(),
的String.Format(承载{0}的accessToken));
httpRequestMessage.Headers.Add(用户代理,我的User-Agent);
使用(VAR httpResponseMessage =等待httpClient.SendAsync(httpRequestMessage))
{
//做响应
VAR数据=东西httpRequestMessage.Content;
}
}
}


I'm using HttpWebRequests to contact an API and need to add a header but the compiler tells me that the method does not exists. Yet, when I check MSDN, it tells me that the method already exists. Setting my UserAgent-property fails as well.

Can anyone help me please?

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;
              }
        }
}

解决方案

You will have to use a HttpRequestMessage like this:

  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;
      }
    }
  }

这篇关于在使用WinRT的&放HttpRequestHeaders; C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆