Основная задача - авторизовать POST через программу Delphi. Используя REST Client, я обнаружил, что, имея URL-адрес сайта и два заголовка: * login_email * и * login_pass *, я могу успешно получить HTML-код и мою форму авторизации POST в порядке, я вошел в систему.POST-запрос в Delphi XE
Однако, Я написал этот код Delphi:
DataToSend := TStringList.Create;
DataToSend.Add('');
IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
IdHTTP1.Request.CustomHeaders.AddValue('login_email','some_email');
IdHTTP1.Request.CustomHeaders.AddValue('login_pass','some_password');
Memo1.Lines.Add(idHTTP1.Post('http://url.com', DataToSend));
Мои пользовательские заголовки не кодируются URL.
Я вижу заголовки запроса:
Server: nginx/1.0.8
Date: Sun, 01 Sep 2013 17:03:59 GMT
Content-Type: text/html; charset=windows-1251
Connection: close
X-Powered-By: PHP/5.2.6-1+lenny16
Vary: Accept-Encoding
но ontained HTML это то же страница, для которой POST-запрос был отправлен с необработанным видом.
Что я делаю неправильно?
Некоторые серверы отклоняют запросы из-за установленного пользователем «User-Agent» по умолчанию. Если это ваш случай, вы можете попробовать заполнить свойство IdHTTP1.Request.UserAgent' одним из любимых браузеров, чтобы подделать сервер, который вы используете. Но это всего лишь моя догадка (и довольно частая проблема). – TLama
Я добавил этот Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, как и Gecko) Chrome/29.0.1547.62 Safari/537.36 как UserAgent, но ничего не изменилось. –