我正在开发C#\XAML metro-ui应用程序。我想调用某些服务,并为此使用HttpWebRequest
。 HttpWebRequest
的先前实现包含ContentLength
和UserAgent
属性。但是WinRT的实现没有它。我试图使用post中描述的方法。它适用于UserAgent
,但不适用于ContentLength
。
我尝试设置Headers
request.Headers["Content-length"] = Length;
request.Headers["User-agent"] = UserAgent;
但是收到了异常“必须使用适当的属性或方法来修改'Content-length'头”。
可以在WinRT中实现的
Headers
中设置HttpWebRequest
吗? 最佳答案
在WinRT下,HttpWebRequest
具有半弃用的状态。某些以前可以在较早的.NET平台上修改的 header 值不再无法使用它进行修改。
似乎 HttpClient
是具有简单API和完全异步支持的HttpWebRequest的新改进版。
由于您要指定Content-Length,因此我假设您正在尝试将某些内容发布或放置到服务器上。在这种情况下,您将需要适本地使用PostAsync()或PutAsync()。
var req = new HttpClient();
req.DefaultRequestHeaders.Add("User-agent", UserAgent);
req.DefaultRequestHeaders.Add("Content-length", Length);
return await req.PostAsync(RequestURL, Body);
您可能实际上并不需要指定Content-length header ,因为这些方法会根据Body的实际长度自动将其包含在内,但是您可以尝试使用任何一种方法。
关于c# - 如何在Windows 8应用程序中向HttpWebRequest添加 header ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10960358/