2017-08-03 8 views
1

クライアント上のPHPスクリプトとPythonスクリプトで、PHPスクリプトとMySQLデータベースを使用してロングポーリングパターンを実行しています。 データベースのフラグが0に設定されている場合、PHPページはタプルのIDで応答します。要求がタイムアウトした場合は、新しい要求を開始する必要があります。これは私のコードであり、私は私のミスを見つけることができません。リクエストによるPythonの長いポーリングパターン

gotID = False 
ID = 0 

while gotID == False: 
    f = requests.get("http://example.de/ajax_backend.php") 
    print("status: " + str(f.status_code)) 
    print("content: " + f.text) 
    if int(f.status_code) == 200: 
     gotID = True 
     ID = f.text 

私はこのようなコードを実行する場合、私はこの出力を取得します。まずフラグは、1に設定した後、途中で私は0にフラグを変更:

console output python script

私はifステートメントにエラーがあると思いますが、私はそれを見つけることができません。手伝って頂けますか?

+0

どちらの場合もhttp://example.de/ajax_backend.phpから元の応答を投稿してください(フラグの設定と解除) – Arseniy

+0

問題は何ですか? 'f.status_code'が500を返してもループを終了しますか? –

+0

問題は、フラグが1または0に設定されている場合でも、プログラムはwhileループにとどまっていることです。フラグが1に設定されている場合、プログラムはwhileループを離れる必要があります。 – DumbergerL

答えて

0

私は今、作業コード作成:

gotID = None 
ID = 0 

while not gotID: 
    f = requests.get("http://example.de/ajax_backend.php") 
    print("status: " + str(f.status_code)) 
    print("content: " + f.text) 

    try: 
     ID = int(f.text) 
     gotID = "samlpe content" 
    except ValueError: 
     gotID = None 

をしかし、上記の私のコードは、作品をしない理由私はまだ知りません。

関連する問題