3

私はこのようなことをしています:

 var httpWebRequest = WebRequest.Create(context.Url) as HttpWebRequest;
 httpWebRequest.Method = "POST"
 ... (set all the stuff)
 ... (get request stream and post data)

 //Get response
 var httpWebResponse = httpWebRequest.GetResponse() as HttpWebResponse;

 ... (Inspect Headers)

 //Get response stream and read body
 var responseStream = httpWebRequest.GetResponseStream();

謙虚な期待で、GetResponse()を呼び出すとヘッダーのみがフェッチされ、応答ストリームから読み取りを開始すると本文が実際にダウンロードされると思いました。実際に起こることは、GetResponseStream()を呼び出してそれを読み取ると、データはすでに利用可能になっているということです。応答は通常のHTMLページです。チャンク化されたデータではうまく機能すると思います。

だから私の質問は、そこで実際に何が起こっているのか、そして本文のコンテンツをフェッチする前にhttp投稿からヘッダーのみを取得する方法は何ですか?

4

2 に答える 2

2

GET または POST 要求を使用すると、サーバーは送信時にヘッダーと「本文」を分離せずにすべての応答データを送信します。ヘッダーのみを取得するには、httpWebRequest.Method を "HEAD" に設定し、httpWebResponse.Headers ( http://msdn.microsoft.com/en-us/library/system.net.httpwebresponse.headers.aspx ) を使用してヘッダー データを収集します。

于 2012-04-12T09:28:40.270 に答える