0

Indy (10) で POST リクエストを送信し、結果または低レベル APIを無視するにはどうすればよいrecvですか? 結果は必要なく、帯域幅を節約したいのでお願いしています。

4

1 に答える 1

2

を使用する場合TIdHTTP、 を無視することはできませんがrecv()、少なくとも応答データは無視できます。パラメータを出力として受け取る のオーバーロードされたバージョンを呼び出し、Post()をに設定します。 ソケットから応答ヘッダーと本文データを引き続き読み取りますが、本文について読み取ったものはすべて破棄します。これは、HTTP キープアライブを使用する場合に重要です。これは、接続の同期を維持するため、後続の HTTP リクエストが同じ接続で送信され続けることができるためです。HTTP キープアライブを使用していない場合、終了する前に接続が閉じられます。接続をすぐに閉じたい場合は、次の場合にイベントで例外を発生させることができますAResponseContent: TStreamTStreamnilTIdHTTPPost()TIdHTTP.OnWorkAWorkModewmRead、特に HTTP リダイレクトが使用されている場合は、うまく機能しない可能性があります。

POST リクエストを送信して応答を完全に無視するだけの場合は、TIdTCPClient代わりに を使用して、独自の POST リクエストを手動で送信し、すぐに接続を閉じることをお勧めします。

于 2013-05-15T16:26:04.933 に答える