私のC++アプリケーションからサーバー上のPHPスクリプトにHTTP POST request
を送信しています。 HttpOpenRequest/HttpSendRequest/etc
を使用してください。現在、PHPスクリプトの実行が完了してからHttpSendRequest
が返されます。この機能を変更するにはどうすればよいですか?HttpSendRequestはPHPスクリプトの終了を待っていません
私のC++アプリケーションが終了する直前にデータを送信していますので、PHPスクリプトが実行を完了するのを待って10秒以上そこに座ることは望ましくありません。私はちょうどそれがデータを送信し、アプリを終了します。
私が考えていたことの1つは、PHPスクリプトに別のプロセスでexecコマンドを使って別のPHPスクリプトを生成させることだったので、最初のスクリプトはすぐに戻ります。しかし、私はHTTP POSTリクエストで多くのデータを送信しているので、このデータを生成されたプロセスに渡す必要があります。
理想的には、HttpSendRequest
を待たないように設定するフラグを設定します。私はドキュメントではっきりと何かを見ることができませんでしたが、何かを見逃しているかもしれません。
問題は、それがブロックしているHttpSendRequestをということです。だから私はその関数が戻るまで接続を閉じることはできません。 – Dan
しかし、応答を受け取るまではブロックされていますよね? http://www.php.net/manual/en/features.connection-handling.php#71172 – rik
Aha!あなたが投稿したリンクのコードは、ignore_user_abort()呼び出しと同じようにしたいものです。ヘッダー( "Connection:close")とob_ *関数を使用すると、接続を早期に閉じることができます。他の誰かがこの問題を抱えている場合、この情報であなたの投稿を更新する価値があるかもしれません。ありがとう:-) – Dan