是否可以修改WinRT HttpWebRequest的User-Agent?

时间:2011-09-17 11:09:00

标签: c# windows-8 windows-runtime

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

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

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

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

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

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

如何修改User-Agent标头?

2 个答案:

答案 0 :(得分:17)

经过一些修补,我现在已经知道如何在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);

答案 1 :(得分:1)

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