Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2012, 22:18   #1
liquidon
 
Регистрация: 12.01.2012
Сообщений: 7
Печаль Как правильно составить get запрос

Всех приветствую.
Проблема: На странице регистрации на Rambler.ru (http://id.rambler.ru/profile/create) после перехода ко второму шагу регистрации, url не меняется. Но нужно уже с той второй страницы получить исходный код путем
Код:
qwe := idHTTP1.Get('http://id.rambler.ru/profile/create');
Но при таком варианте исходный код получается той первой страницы. Помогите, как быть с такой ситуацией.

И если можно, сразу еще вопрос. На второй странице генерируется изображение капчи, которое и нужно получить. Адрес ссылки на картинку примерно такой: _http://id.rambler.ru/captcha/ad87f52258ca8e2a38988aa635fd7bd8.jp g. По какому принципу генерируется название изображения? При отправке POST запроса используется request.key, но он не аналогичен названию, как это было в прежние времена.

Исходник прилагаю:
Цитата:
procedure TForm1.Button1Click(Sender: TObject);
var link:string;
img:TFileStream;
begin
memo1.Lines.Add('Получаем хэш-код..');
s := idHTTP1.Get('http://id.rambler.ru/script/newuser.cgi');
request:=copy(s, pos('name="request.key" value="',s) +26, 32);
s:= '';
memo1.Lines.Add('Хэш-код получен: '+request);
Memo1.Lines.Add('Составляем POST запрос');
Zapros:=TStringlist.Create;
Zapros.Add('request.key='+request);
Zapros.Add('Action=step2');
Zapros.Add('profile.firstname='+Edi t2.Text);
Zapros.Add('profile.lastname='+Edit 1.Text);
Zapros.Add('profile.username='+Edit 3.Text);
Zapros.Add('profile.domain='+ComboB ox1.Text);
Zapros.Add('button.submit');
Memo1.Lines.Add('Отправляем POST запрос..');
idHTTP1.Post('http://id.rambler.ru/script/newuser.cgi', zapros);
Memo1.Lines.Add('Запрос отправлен.');
Memo1.Lines.Add('Получаем ссылку на изображение капчи..');
s:=idHTTP1.Get('http://id.rambler.ru/profile/create');
memo1.Lines.Add(s); // Выводить стал для проверки, действительно, страница не та.
link:='http://id.rambler.ru'+copy(s, pos('id="secimage" src=',s)+19, 41)+'.jpg'; // т.к. не найден, то pos = 1
if pos('id="secimage" src=',s)=0 then
memo1.Lines.Add('НЕ НАЙДЕНО'); // Вот это и выходит
memo1.Lines.Add('Ссылка на изображение получена: '+link); // link получается не ссылка, а начало первой страницы, где вводилось имя и фамилия
s:= '';
{img:=TFileStream.Create('captcha.j pg',FMCreate);
IdHTTP1.Get(link, img);
FS.Free;
Image1.Picture.LoadFromFile('captch a.jpg');
Memo1.Lines.Add('Введите изображение с картинки в поле.') }
end;
Неописанные переменные являются глобальными.

Всем заранее благодарен.

Последний раз редактировалось liquidon; 17.01.2012 в 22:50.
liquidon вне форума Ответить с цитированием
Старый 18.01.2012, 09:29   #2
Mifody
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 215
По умолчанию

для начала, для перехода на следующую страницу не GET а POST запрос отправлять надо
Помог с вопросом - тыркаем в весы, Вам не сложно, а мне приятно
Mifody вне форума Ответить с цитированием
Старый 27.03.2012, 00:59   #3
Lardes
Форумчанин
 
Аватар для Lardes
 
Регистрация: 19.08.2011
Сообщений: 329
По умолчанию

Цитата:
По какому принципу генерируется название изображения? При отправке POST запроса используется request.key, но он не аналогичен названию, как это было в прежние времена.
Полностью согласен с Вами, всё это было в прошлом.. Сколько не парился по этому вопросу, так и не нашел ответа, а что самое забавное: при загрузки картинки загружается совершенно другая картинка. К примеру, вставляем строчку http://id.rambler.ru/captcha/ac35ef9...30a8cde1fc.jpg в браузер, смотрим что за картинка, обновляем и вуа-ля! Как решить этот вопрос?
Lardes вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно составить ER-диаграмму? Cat 1988_88 Помощь студентам 0 16.10.2010 17:20
Не получается правильно составить запрос XPath, Использую SelectSingleNode kolchakA Общие вопросы .NET 0 09.07.2010 17:32
Составной запрос, как правильно составить? Bendebej SQL, базы данных 10 26.02.2010 20:01
Как правильно составить маску? Pavell PHP 1 05.01.2009 15:58