У меня есть некоторый тестовый код (как часть веб-приложения), который использует urllib2 для выполнения операции, которую я обычно выполняю через браузер:
- Вход на удаленный веб-сайт
- Перейти на другую страницу
- Выполнить POST, заполнив форму
Я создал 4 отдельных чистых virtualenvs (с --no-site-packages) на 3разные машины, все с разными версиями python, но с одинаковыми пакетами (через файл требований pip), и код работает только на двух virtualenv на моей локальной машине разработки (2.6.1 и 2.7.2) - он не будет работатьна любом из моих производственных VPS
В случае сбоя я могу успешно войти в систему, перейти на нужную страницу, но когда я отправляю форму, удаленный сервер отвечает, что произошла ошибка - этоСтраница ошибки сервера приложений («мы не смогли выполнить ваш запрос»), а не ошибка веб-сервера.
- , поскольку я могу успешно войти в систему и перейти на вторую страницу, это, похоже, не проблема сеанса или файла cookie - это относится к окончательному POST
- , потому что яможет выполнить операцию на конкретной машине с ТОЧНЫМИ заголовками и данными, это не является проблемой с тем, что я запрашиваю / публикую
- , потому что я пытаюсь кодировать на двух отдельных VPS, арендованных уВ разных компаниях это не является проблемой для физической среды VPS
- , поскольку код работает на 2 разных версиях Python, я не могу представить, что это проблема несовместимости
На этом этапе я совершенно растерялся, почему это не сработало.Я даже «выключил и включил снова», потому что просто не понимаю, в чем проблема.
Я думаю, что это как-то связано споследний POST от VPS, который не нравится удаленному серверу, но я не могу понять, что это может быть.Я чувствую, что что-то происходит под капотом URLlib, что заставляет удаленный сервер не любить ответ.
РЕДАКТИРОВАТЬ Я установил точно такую же версию Python (2.6.1) на VPS, как и на моей рабочей локальной копии, и она не работает удаленно, поэтому это должно быть что-тоделать с выходом из VPS.Как это может повлиять на запрос Http?Это что-то более низкого уровня?