Я пишу приложение, которое подключается к веб-серверу (я владелец сервера), отправляет информацию, предоставленную пользователем, обрабатывает эту информацию и отправляет результат обратно в приложение. Время, необходимое для обработки результатов, зависит от запроса пользователя (от нескольких секунд до нескольких минут).
Я использую бесконечный цикл, чтобы проверить, существует ли файл (может быть, есть более разумный подход ... может быть, я мог бы оценить максимальное время, которое может занять запрос, и избежать его использования, и бесконечный цикл)
важная часть кода выглядит следующим образом
import time
import mechanize
br = mechanize.Browser()
br.set_handle_refresh(False)
proxy_values={'http':'proxy:1234'}
br.set_proxies(proxy_values)
While True:
try:
result=br.open('http://www.example.com/sample.txt').read()
break
except:
pass
time.sleep(10)
За прокси цикл никогда не заканчивается, но если я изменю код на что-то вроде этого,
time.sleep(200)
result=br.open('http://www.example.com/sample.txt').read()
т.е.. Я жду достаточно времени, чтобы убедиться, что файл создан, прежде чем пытаться его прочитать, я действительно получаю файл: -)
Похоже, что, если Mechanize запросит файл, который не завершается каждый раз, Mechanize запросит снова, я не получу файл ...
Я повторил то же поведение, используя Firefox. Я запрашиваю несуществующий файл, затем создаю этот файл (помните, что я владелец сервера ...) Я не могу получить файл.
А с помощью Mechanize и Firefox я могу получить удаленные файлы ...
Я думаю, что проблема связана с кешем Proxy, я думаю, что не могу удалить этот кеш, но может быть есть какой-то способ сказать прокси, что мне нужно перепроверить, если файл существует ...
Есть еще какие-нибудь предложения по решению этой проблемы?