2016-03-10 8 views
0

Я пытаюсь выполнить некоторый бенчмаркинг и проблемы с запросом. Проблема в том, что если время ответа велико, оно вызывает некоторые ошибки. Как я могу заставить его вернуть else, если request.get ждет больше, чем, например, 2 секунды.Python Запросить тайм-ауты времени ответа

time = requests.get('http://www.google.com').elapsed.total_seconds() 

if time < 1: 
    print "Low response time" 
else: 
    print "High reponse time" 

ответ

1

Использовать параметр таймаута requests.get. requests.get поднимет requests.exceptions.Timeout исключение, если запрос занял больше времени, чем значение таймаута.

try: 
    resp = requests.get('http://www.google.com', timeout=1.0) 
except requests.exceptions.Timeout as e: 
    print "High reponse time" 
else: 
    print "Low response time" 
+0

Это работает, но вам нужно перейти между высоким и низким. – user3580316

+0

Если генерируется исключение, это означает, что время ответа было высоким (более 1,0), поэтому я думаю, что это правильно? 'else' будет выполняться, если запрос завершен с тайм-аутом, а значит, и низкое время отклика. –

+0

Безусловно, это бросает «высокое время отклика», когда требуется менее 1 секунды и низкое время отклика, когда требуется более 1 секунды. – user3580316

1

Я не знаю, какие ошибки вызывают (вы имеете в виду исключения здесь?). Если он выбрасывает исключения, то вы можете поместить его в попытке/за исключением:

try: 
    time = requests.get('http://www.google.com').elapsed.total_seconds() 
    if time < 1: 
     print "Low response time" 
    else: 
     print "High response time" 
except: 
    # threw an exception 
    print "High response time" 

Если вы знаете тип исключения брошенного, то я установил бы, кроме поймать это исключение и никаких других.

+0

Как я могу заставить его «исключать», если ответ занимает более 2 секунд? Так как я не хочу ждать незарегистрированных 20 секунд (если время ответа составляет 20 секунд). Если это занимает более 2 секунд, я хочу, чтобы он немедленно остановился и пошел 'except' – user3580316

 Смежные вопросы

  • Нет связанных вопросов^_^