2016-05-02 18 views
-1

私は、サーバーにPOST要求を行い、特定のイベントが発生するたびにサーバーが応答を送信し続けるスクリプトを作成しています。以前のログイン要求でPOST要求にクッキーを使用し、POSTにデータとして渡す必要があります。各クッキーは10分続いてから、キープアライブ要求を実行する必要があります。PythonでのPOST要求の連続的な応答を取得

イベントが発生するたびに、そのイベントをファイルに記録する必要があります。非同期でリクエストを生成していますが、出力を制御できません。セッションも試みましたが使用しませんでした。私はいくつかがあるたびに永遠にステップ2のモニタ出力を保管してください(一回のみ行うことができます)

2]サーバー

3に要求を投稿]]と同じ順番でログインを

1に次のことをしたいです出力をファイルに記録する

4]サーバーへの別の要求によってセッションを維持します。

さらに詳しい説明が必要な場合は教えてください。以下は

がコードである、それは動作しません

​​

は、したがって、上記のコードでは、私はここで行うポストコールがブロックし、連続しているが、ポストコールが実際に完了れることは決してありませんので、それは連続して出力ストリーム。 しかし、xml形式の出力を受け取ると、サーバーはイベントがトリガーされるたびにこれらの応答を送信します。

PS:私は、これはそれが標準出力に出力を印刷し続けるカールで動作し、ログアウトを行うと、再度ログインする必要はありません、私は私が修正した200

+0

私は実際に何をしたいのか分かりませんでした。質問を明確にして、より迅速にヘルプを入手してください。 –

+0

いくつかのコードを投稿してください。 –

+0

'stream = True'を設定し、[r.iter_lines](http://docs.python-requests.org/ja/master/api/#requests.Response.iter_lines)を使用するとどうなりますか? –

答えて

0

のようないくつかのサーバに対してこのコードを実行する必要がこの問題は、コンテンツまたはread_lines()の代わりに2つのレベルのスレッディングと読み込みチャンクがあります。 1]タイムアウトヒット時に2番目のスレッドを生成し、キープアライブを実行する最初のスレッドが作成されます。

2] 2番目のスレッドは、POST要求のあるイベントにサブスクライブし、応答が受信されるたびにサイズ1024のチャンクを受信し続け、それぞれのデータが更新されます。ここでは、Stream = Trueのリクエストを使用しました。これは、クッキーが応答を読み取る前に期限切れになっていたため、セッションを閉じてしまったため、以前は私にとってはうまくいきませんでした。

誰かがこれを行うより良い方法があれば、ここで更新してください。

関連する問題