![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте,
возникла такая необходимость, получить исходник запрашиваемой страницы используя idhttp, даже когда есть ошибка или редирект. Если смотреть через снифер, то исходник есть, а инди сразу показывает ошибку или редеректит. Если нужно гдето исходник инди поправить, скажите, очень надо Спасибо |
|
#2
|
||||
|
||||
|
У меня так, может поможет:
Код:
function CheckUrl(url: string): boolean;
var
hSession, hfile, hRequest: hInternet;
dwindex, dwcodelen: dword;
dwcode: array [1..20] of char;
res: pchar;
begin
if pos('http://', lowercase(url)) = 0 then
url := 'http://'+url;
Result := false;
hSession := InternetOpen('InetURL:/1.0', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
if assigned(hsession) then
begin
hfile := InternetOpenUrl(hsession, pchar(url), nil, 0, INTERNET_FLAG_RELOAD, 0);
dwIndex := 0;
dwCodeLen := 10;
HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE, @dwcode, dwcodeLen, dwIndex);
res := pchar(@dwcode);
result := (res = '200') or (res = '302');
if assigned(hfile) then
InternetCloseHandle(hfile);
InternetCloseHandle(hsession);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
link:=edit1.text;
Application.ProcessMessages;
if not (CheckUrl(link)) then
begin
MessageBox(0, 'Произошла ошибка!', 'Ошибка', MB_ICONERROR);
end
else
begin
memo1.links.text:=idHTTP1.Get(link);
end;У меня вроде работает но про редирект не знаю, не проверял |