【问题标题】:Using specifig User-Agent and CookieContainer with WinRT将 specifig User-Agent 和 CookieContainer 与 WinRT 一起使用
【发布时间】:2012-10-31 18:54:52
【问题描述】:

有没有办法使用 CookieContainer 并使用 WinRT 在同一请求中指定 UserAgent?

看起来 HttpWebRequest 不支持 UserAgent。 HttpClient + HttpRequestMessage 似乎也不支持 CookieContainer。

或者我可以以某种方式从 HttpRequestMessage 读取接收到的 cookie 吗? (在 WP7 中,cookie 不可读。)

【问题讨论】:

  • 此答案适用于 Silverlight,不适用于 WinRT。 System.Net.Http.HttpClient 类有两个 Windows.Web.Http.HttpClient 类见unravelingcode.com/…

标签: cookies windows-runtime user-agent


【解决方案1】:

新:

这是一个适用于 User-Agent 的选项(并开始使用 cookie):

How to add header to HttpWebRequest in Windows8 applicaition?

HttpClient 现在是在 WinRT 中进行通信的首选方式。

旧: 您应该能够使用HttpWebRequest 类。它有一个UserAgent 属性和一个CookieContainer。 cookie 容器 Web 文档有一个示例。

【讨论】:

  • 是的,文档说我可以。但代码不会为 Windows 应用商店应用程序编译。 “错误 1 ​​'System.Net.HttpWebRequest' 不包含 'UserAgent' 的定义,并且找不到接受类型为 'System.Net.HttpWebRequest' 的第一个参数的扩展方法 'UserAgent'(您是否缺少 using 指令或程序集参考?)”
  • 显然,对于特定于 WinRT 的开发,文档仍然难以导航。 :(我已经更新了答案。
【解决方案2】:

也可以将 CookieContainen 与 HttpClient 一起使用。 您只需要创建第一个 HttpClientHandler。 从那里可以添加CookieContainer。

http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh781241.aspx

var handler = new HttpClientHandler();

handler.CookieContainer = myCookieContainer;

var httpClient = new HttpClient(handler);

httpClient.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (兼容; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");

【讨论】:

  • 此答案适用于 Silverlight,不适用于 WinRT。 System.Net.Http.HttpClient 类有两个 Windows.Web.Http.HttpClient 类见unravelingcode.com/…
猜你喜欢
  • 2010-12-19
  • 1970-01-01
  • 2011-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多