我试图弄清楚这是如何工作的。
HttpWebRequest
有一个BeginGetResponse
接受作为参数的方法 a ResponseCallback
。首先,这个回调是立即调用(在一个新线程中)还是在它收到来自服务器的响应后调用?还是EndGetResponse
等待响应的工作?
其次,一旦您获得响应,您可以立即访问响应流,但该流在完成下载之前不包含整个页面,因此BeginRead
. 但是,我似乎能够立即通过HttpWebResponse.ContentLength
. 这是否意味着EndGetResponse
在完全下载标头之前不会完成,还是当您调用ContentLength
参数时它会挂起一段时间,直到收到该标头?