我正在尝试将现有应用转换为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标头?
答案 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中,可以完全按照您问题中的示例执行此操作。