我正在使用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#的[[真正的新手]],而且我似乎找不到一种方法来访问特定异步请求响应的标头。在我看来,每个WebClient
在任何给定时间只能保存一个响应(或一组标题)。虽然我不会同时执行多个并行请求,但我仍然想知道是否有一种更优雅的方法来检索特定请求的响应标头/状态代码,而不必获取WebClient
的“最后可用”响应。
谢谢。
我正在使用System.Net.WebClient以异步模式执行一些HTTP操作。使用异步操作的原因首先是获得进度更改指示的事实-...