Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 1, 2008 16:50:40

ReinRaus
От:
Зарегистрирован: 2008-10-24
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по HTTPlib

В общем мне нужно обращаться к некоторому сайту и передавать ему данные. Проще говоря бот нужен. Есть такой нюанс, что данные передаются не постоянно, а делаются паузы через time.sleep() паузы могут достигать одного часа. Исполязую такую функцию для этого:

con=httplib.HTTPConnection('www.labwar.ru:80')
print 'Start...'

def post(query, dat, useragent='Vertu Platinum 1.5268'):
global site, con
errcount=0
site=''
headers={'Content-Type':'application/x-www-form-urlencoded', 'User-Agent':useragent}
errflag=1
while errflag==1:
try:
con.request('POST', query, dat, headers)
temp=con.getresponse()
site=temp.read()
errflag=0
except:
sleep(15)
errcount+=1
if errcount>3:
print 'Reconnect...'
con=httplib.HTTPConnection('www.labwar.ru:80')
errcount=0
если убрать счет ошибок, то после спячки 30 минут он уже не подключится, а с этим расчетом все как то тоже не стабильно работает
Подскажите- можно ли как то улучшить эту функцию?



Офлайн

#2 Ноя. 1, 2008 16:55:26

SvartalF
От:
Зарегистрирован: 2008-06-29
Сообщения: 73
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по HTTPlib

Соединение отключается по таймауту. Что мешает просто заново подключаться?



Офлайн

#3 Ноя. 1, 2008 17:04:19

ReinRaus
От:
Зарегистрирован: 2008-10-24
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по HTTPlib

Не знаю… В этом то и прикол, что не знаю… Вроде бы все должно работать нормально… Только почему то не работает долго. Вот сейчас такой лог

Start…
End itteration ::: 4 (здесь он 40 минут спит)
Reconnect…
End itteration ::: 4 (здесь он 40 минут спит)

но в один прекрасный момент просто нечто вроде
Reconnect…
Reconnect…
Reconnect…
Reconnect…
и так до бесконечности. Соединение с интернетом стабильное. Файрвол настроил так, что питону разрешены любые подключения и все равно ошибка (((



Офлайн

#4 Ноя. 1, 2008 20:49:33

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Вопрос по HTTPlib

Ну так ты посмотри почему исключение возникает. Мне всегда советовали голый except не использовать, теперь вот сам советую :)
минимум это можно:

except Exception,x:
print x



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version