1

次のように、URLにリクエストを送信し、生の応答を取得するとします。

HTTP / 1.1 200 OK
日付:2010年4月28日水曜日14:39:13 GMT
有効期限:-1
Cache-Control:private、max-age = 0
Content-Type:text / html; charset = ISO-8859-1
Set-Cookie:PREF = ID = e2bca72563dfffcc:TM = 1272465553:LM = 1272465553:S = ZN2zv8oxlFPT1BJG; 有効期限=金、2012年4月27日14:39:13 GMT; パス=/; domain = .google.co.uk
サーバー:gws
X-XSS-保護:1; mode = block
接続:閉じる

<!doctype html><html><head>...</head><body>...</body></html>

C#の応答からHTTPヘッダーを削除するための最良の方法は何でしょうか?正規表現を使用しますか?それをある種のHTTPResponseオブジェクトに解析し、本体のみを使用しますか?

編集:

私はSOCKSを使用してリクエストを行っています。だから私は生の反応を得るのです。

4

3 に答える 3

4

ヘッダーと本文は空の行で区切られます。REなしでそれを行うのは本当に簡単です。最初の空の行を検索するだけです。

于 2010-04-28T14:52:39.363 に答える
1

HttpWebrequestクラスを使用すると、ヘッダーのコレクションを含むHttpWebResponseオブジェクトが返されます。その後、それらを削除したり、解析したり、好きなように操作したりできます。

于 2010-04-28T14:57:29.497 に答える
1

部分文字列メソッドを使用すると、先頭のキャリッジリターンが残ることに注意してください。私はこれを使用しました:

 string HTTPHeaderDelimiter = "\r\n\r\n";
 if (RawHTTPResponse.IndexOf("HTTP/1.1 200 OK") > -1)
    {
       HTTPPayload = RawHTTPResponse.Substring(RawHTTPResponse.IndexOf(HTTPHeaderDelimiter)+HTTPHeaderDelimiter.Length);
    }
    else
    {
       return;
    }
于 2010-06-12T04:40:38.460 に答える