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

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

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

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

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

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

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

如何修改User-Agent标头?

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

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