如何在Windows 8应用程序中向HttpWebRequest添加标头?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Windows 8应用程序中向HttpWebRequest添加标头?相关的知识,希望对你有一定的参考价值。

我正在开发C# XAML metro-ui应用程序。我想打电话给一些服务,并为此使用HttpWebRequest。以前对HttpWebRequest的实现包含ContentLengthUserAgent属性。但是WinRT的实现没有它。我试图使用这个post中描述的方法。它适用于UserAgent但不适用于ContentLength。我试过设置Headers

request.Headers["Content-length"] = Length;
request.Headers["User-agent"] = UserAgent;

但收到异常“必须使用适当的属性或方法修改'Content-length'标头。”

热门是否可以在WinRT中实现Headers中的HttpWebRequest

答案

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的实际长度自动包含它,但您可以尝试使用它。

以上是关于如何在Windows 8应用程序中向HttpWebRequest添加标头?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio for Windows 中向 Winform 应用程序添加 Internet 权限 [关闭]

如何在 Docker 容器中向 Tomcat 添加 SSL 证书?

如何在 C++ 中向字符串中添加字符?

无法使用 MassTransit 在 Windows 服务应用程序 (.Net Core 3.1) 中向消费者注入服务

如何在 Laravel-8 和 InertiaJs 中向服务器发出 POST 请求时在浏览器中保留当前的 ​​GET url

在 iOS 8.3 中向 UIWindow 添加子视图