我开发 C#\XAML Metro-ui 应用程序。我想调用一些服务并使用HttpWebRequest
为了这。之前的实现HttpWebRequest
包含ContentLength
and UserAgent
特性。但WinRT的实现却没有它。我尝试使用此中描述的方法post。它适用于UserAgent
但不是为了ContentLength
。
我尝试过设置Headers
request.Headers["Content-length"] = Length;
request.Headers["User-agent"] = UserAgent;
但收到异常“必须使用适当的属性或方法修改‘Content-length’标头。”
热可以设置吗Headers
in HttpWebRequest
在WinRT中实现?
HttpWebRequest
在 WinRT 下处于半弃用状态。以前可以在早期 .NET 平台上修改的一些标头值现在不能再用它修改。
看起来HttpClient是 HttpWebRequest 的全新改进替代品,具有简单的 API 和完整的异步支持。
由于您想指定 Content-Length,我假设您正在尝试将某些内容 POST 或 PUT 到服务器。在这种情况下,您将需要根据需要使用 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 标头,因为这些方法将根据 Body 的实际长度自动包含它,但您可以尝试任何一种方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)