需要在服务器开始响应我的 HttpWebRequest 时立即调用方法
Need to call method as soon as server starts responding to my HttpWebRequest
我需要在新线程中调用一个方法,例如:mymethod()
一旦服务器开始响应我的 HttpWebRequest
。
我在下面使用发送 http 请求并获得响应。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(MyUrl);
HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
现在我需要的是 request
当我需要在新线程中调用方法 mymethod()
服务器开始响应时。但问题是我不知道如何检测服务器是否已开始响应(启动响应流)我的请求。
告诉我服务器开始响应的方式是什么,我可以调用我的方法。
目标框架:.net framework 4.5,我的项目是Windows表单应用程序。
我能想到的最接近的是使用 HttpClient
并传递一个 HttpCompletionOption.ResponseHeadersRead
,这样您就可以在发送 headers 后开始接收请求,然后开始处理其余的回应:
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();
}
我需要在新线程中调用一个方法,例如:mymethod()
一旦服务器开始响应我的 HttpWebRequest
。
我在下面使用发送 http 请求并获得响应。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(MyUrl);
HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
现在我需要的是 request
当我需要在新线程中调用方法 mymethod()
服务器开始响应时。但问题是我不知道如何检测服务器是否已开始响应(启动响应流)我的请求。
告诉我服务器开始响应的方式是什么,我可以调用我的方法。
目标框架:.net framework 4.5,我的项目是Windows表单应用程序。
我能想到的最接近的是使用 HttpClient
并传递一个 HttpCompletionOption.ResponseHeadersRead
,这样您就可以在发送 headers 后开始接收请求,然后开始处理其余的回应:
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();
}