Ошибка 400 неверного запроса при попытке выполнить HTTP POST с использованием python Mechanize

Я проверил информацию заголовков с помощью заголовков Live HTTP при выполнении HTTP POST в firefox, а затем я пытаюсь сделать это с помощью механизации, которая принесла мне ошибку 400 неверных запросов. Вот мой код:

MechBrowser = mechanize.Browser()

LoginUrl = "http://example.com"
LoginHeader = {"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 GTB7.1 (.NET CLR 3.5.30729)", "referer": "http://example.com"}
LoginData = "example=&hello=hi"

LoginReq = urllib2.Request(LoginUrl, LoginData, LoginHeader)
LoginResposne = MechBrowser.open(LoginReq)

Переменная копируется из LiveHTTPHeaders, и я все равно получаю ошибку 400. Чего-то не хватает?


person Shane    schedule 15.07.2011    source источник
comment
У вас есть доступ к журналу ошибок сервера? Если да, то что это показывает?   -  person Joe White    schedule 04.08.2011


Ответы (3)


400 - довольно расплывчатый код ответа. Некоторые причины могут быть недопустимыми или отсутствовать Host или Content-Length заголовки.

person SingleNegationElimination    schedule 15.07.2011
comment
Просто добавил Host и Content-Length в заголовки, но все еще не работает. На самом деле не знаю, что случилось ... - person Shane; 16.07.2011

Из моего опыта программирования веб-серверов я могу сказать вам, что вам просто нужно иметь "http://example.com?example=&hello=hi". (Просто соедините свой URL-адрес и данные с помощью амперсанда.)

person Snakes and Coffee    schedule 04.08.2011

На самом деле для этого запроса требуется скрытая информация, которая не была захвачена LiveHTTPHeaders, поэтому я обратился к скрипачу за более подробными отчетами и анализом, проблема решена.

person Shane    schedule 28.11.2016