需要调用方法,只要服务器开始响应我的HttpWebRequest

本文关键字:开始 响应 HttpWebRequest 服务器 我的 调用 方法 | 更新日期: 2023-09-27 17:54:01

我需要在新线程中调用一个方法,例如:mymethod(),一旦服务器开始响应我的HttpWebRequest

我正在使用下面发送http请求并获得响应。

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(MyUrl);
HttpWebResponse response = (HttpWebResponse)request.GetResponse ();

现在我需要的是我的request当服务器开始响应时,我需要在新线程中调用mymethod()方法。但问题是,我不知道如何检测服务器已经开始响应(启动responsestream)到我的请求。什么方式告诉我服务器开始响应,我可以调用我的方法。

目标框架:是。net framework 4.5,我的项目是Windows Form application.

需要调用方法,只要服务器开始响应我的HttpWebRequest

我能想到的最接近的是使用HttpClient并传递HttpCompletionOption.ResponseHeadersRead,这样您就可以在发送报头后开始接收请求,然后开始处理响应的其余部分:

public async Task ProcessRequestAsync()
{
    var httpClient = new HttpClient();
    var response = await httpClient.GetAsync(
           url, 
           HttpCompletionOption.ResponseHeadersRead);
    // When we reach this, only the headers have been read.
    // Now, you can run your method
    FooMethod();
    // Continue reading the response. Change this to whichever
    // output type you need (string, stream, etc..)
    var content = response.Content.ReadAsStringAsync();
}