2017-08-03 82 views
1

我正在用服務器上的PHP腳本和MySQL數據庫以及客戶端上的python腳本執行長查詢模式。 如果數據庫中的標誌設置爲0,那麼PHP頁面會以tupel的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

問題是程序停留在while循環中,無論標誌設置爲1還是0.如果標誌設置爲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 

,但我仍然不知道爲什麼我上面的代碼不工作。