gpt4 book ai didi

c# - 在异步 WebClient 请求中获取 HTTP header

转载 作者:太空狗 更新时间:2023-10-29 22:01:50 26 4
gpt4 key购买 nike

我正在使用 System.Net.WebClient 在异步模式下执行一些 HTTP 操作。使用异步操作的原因最重要的是,我得到了进度更改指示——这仅适用于异步操作,如 the docs 所述.

假设我设置了 WebClient:

this.client = new WebClient();
this.client.UploadStringCompleted +=
new UploadStringCompletedEventHandler(textUploadComplete);

和代表:

private void textUploadComplete(Object sender, UploadStringCompletedEventArgs e)
{
if (e.Error != null)
{
// trigger UI failure notification
return;
}

// FIXME not checking for response code == 200 (OK)
// trigger UI success notification
}

所以你看,我假设如果没有引发异常,请求总是成功的(情况可能并非如此,因为 HTTP 响应状态代码可以是 != 2xx)。来自 UploadFileAsync 上的文档我不知道是否也处理了非 200 响应。

我是 C# 的新手,我似乎无法找到一种方法来访问该特定异步请求响应的 header 。在我看来,每个 WebClient 在任何给定时间只能保存一个响应(或一组 header )。

虽然我不会同时执行多个并行请求,但我仍然想知道是否有更优雅的方法来检索特定请求的响应 header /状态代码,而不是必须获取来自 WebClient 的“最后可用”响应。

谢谢。

最佳答案

从发件人对象中获取 header 我刚刚在上面的代码中添加了一行

  private void textUploadComplete(Object sender, UploadStringCompletedEventArgs e)
{
var headers = (sender as WebClient)?.ResponseHeaders; //HEADERS
if (e.Error != null)
{
// trigger UI failure notification
return;
}

// FIXME not checking for response code == 200 (OK)
// trigger UI success notification
}

关于c# - 在异步 WebClient 请求中获取 HTTP header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3922755/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com