如何使用请求库重新发送 GET 请求,直到我得到所需的响应? (Python)
How to resend GET request with requests library until I get desired response? (Python)
我在一个网络项目中工作,我需要 1) 创建一个用户 2) 使用用户凭据登录。问题是在用户被添加到数据库之前有一段未指定的时间,所以我需要等待那段时间。
我想创建一个显式等待,每 n 秒发送一次 GET 请求,直到响应包含添加的用户凭据。
from time import sleep
from requests import Session
session = Session()
url = 'app_url_with_user_list_endpoint'
resp = session.get(url=url)
while resp.json()[-1]["email"] != "new_use@samplemail.fake":
sleep(0.5)
resp = session.get(url=url)
在这里,我尝试更新 resp 直到它包含新用户电子邮件。但是,我刚刚创建了一个无限循环。
那么,我该如何等待回复以保存所需的电子邮件?可选:如何指定最大重试次数?
以下是否有效? (限制为 10 次尝试,这里相当于超时 5 秒。)
from time import sleep
from requests import Session
session = Session()
url = 'app_url_with_user_list_endpoint'
match = "new_use@samplemail.fake"
success = False
for _ in range(10):
resp = session.get(url=url)
if resp.json()[-1]["email"] == match:
success = True
break
sleep(0.5)
if success:
print("Success: User was added")
else:
print("Timeout: Failed to add user")
我在一个网络项目中工作,我需要 1) 创建一个用户 2) 使用用户凭据登录。问题是在用户被添加到数据库之前有一段未指定的时间,所以我需要等待那段时间。
我想创建一个显式等待,每 n 秒发送一次 GET 请求,直到响应包含添加的用户凭据。
from time import sleep
from requests import Session
session = Session()
url = 'app_url_with_user_list_endpoint'
resp = session.get(url=url)
while resp.json()[-1]["email"] != "new_use@samplemail.fake":
sleep(0.5)
resp = session.get(url=url)
在这里,我尝试更新 resp 直到它包含新用户电子邮件。但是,我刚刚创建了一个无限循环。
那么,我该如何等待回复以保存所需的电子邮件?可选:如何指定最大重试次数?
以下是否有效? (限制为 10 次尝试,这里相当于超时 5 秒。)
from time import sleep
from requests import Session
session = Session()
url = 'app_url_with_user_list_endpoint'
match = "new_use@samplemail.fake"
success = False
for _ in range(10):
resp = session.get(url=url)
if resp.json()[-1]["email"] == match:
success = True
break
sleep(0.5)
if success:
print("Success: User was added")
else:
print("Timeout: Failed to add user")