【问题标题】:Is it possible to modify the User-Agent for a WinRT HttpWebRequest?是否可以修改 WinRT HttpWebRequest 的用户代理?
【发布时间】:2015-10-05 06:22:26
【问题描述】:

我正在尝试将现有应用程序转换为 VS 11 开发人员预览版中的 Metro UI 应用程序。这意味着针对 WinRT 运行时运行(如果我错了,请纠正我)。这在 Windows 8 Developer Preview 上运行。

我需要调用 REST API,这需要设置特定的用户代理。这在 WInRT 中似乎是不可能的。我有以下原始代码:

_request = WebRequest.CreateHttp(url);
_request.UserAgent = UserAgent;

但是没有为 HttpWebRequest 定义 UserAgent 属性。我也试过了:

_request.Headers["User-Agent"] = UserAgent;

这会导致运行时异常:System.ArgumentException:必须使用适当的属性或方法修改此标头。

如何修改 User-Agent 标头?

【问题讨论】:

    标签: c# windows-8 windows-runtime


    【解决方案1】:

    经过一番修改,我现在已经弄清楚了如何在 WinRT 中执行此操作。此版本中的 HttpWebRequest API 已更改为比完整的 .NET Framework 中的要差得多。但是,我可以使用新的HttpClient API 发送请求,这将允许我发送用户代理标头:

    var req = new HttpClient(handler)
    var message = new HttpRequestMessage(HttpMethod.Get, url);
    message.Headers.Add("User-Agent", "myCustomUserAgent");
    var response = await req.SendAsync(message);
    

    【讨论】:

    【解决方案2】:

    请注意,在 Windows 10 中,可以完全按照您问题中的示例执行此操作。

    【讨论】:

      猜你喜欢
      • 2011-02-24
      • 2010-10-06
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 2011-01-28
      • 2012-05-26
      • 2020-03-20
      • 1970-01-01
      相关资源
      最近更新 更多