Найти - Пользователи
Полная версия: Вопрос по HTTPlib
Начало » Python для экспертов » Вопрос по HTTPlib
1
ReinRaus
В общем мне нужно обращаться к некоторому сайту и передавать ему данные. Проще говоря бот нужен. Есть такой нюанс, что данные передаются не постоянно, а делаются паузы через 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 минут он уже не подключится, а с этим расчетом все как то тоже не стабильно работает
Подскажите- можно ли как то улучшить эту функцию?
SvartalF
Соединение отключается по таймауту. Что мешает просто заново подключаться?
ReinRaus
Не знаю… В этом то и прикол, что не знаю… Вроде бы все должно работать нормально… Только почему то не работает долго. Вот сейчас такой лог

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

но в один прекрасный момент просто нечто вроде
Reconnect…
Reconnect…
Reconnect…
Reconnect…
и так до бесконечности. Соединение с интернетом стабильное. Файрвол настроил так, что питону разрешены любые подключения и все равно ошибка (((
igor.kaist
Ну так ты посмотри почему исключение возникает. Мне всегда советовали голый except не использовать, теперь вот сам советую :)
минимум это можно:
except Exception,x:
print x
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB