如何在 Windows8 应用程序中将标头添加到 HttpWebRequest

本文关键字:添加 HttpWebRequest Windows8 应用程序 | 更新日期: 2023-09-27 18:36:43

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

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

但收到异常"必须使用适当的属性或方法修改'内容长度'标头。

热 是否可以在 WinRT 中实现HttpWebRequest中设置Headers

如何在 Windows8 应用程序中将标头添加到 HttpWebRequest

HttpWebRequest

WinRT 下具有半弃用状态。 以前可以在早期 .NET 平台上修改的某些标头值不能再使用它进行修改。

似乎HttpClient是HttpWebRequest的新的和改进的替代品,具有简单的API和完全的异步支持。

由于您要指定内容长度,因此我假设您正在尝试向服务器发布或放置某些内容。 在这种情况下,您需要根据需要使用 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 的实际长度自动包含在这些方法中,但您可以尝试使用任何一种方式。