Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2016.02.28;
Скачать: CL | DM;

Вниз

Получить код страницы.   Найти похожие ветки 

 
oleg_teacher   (2014-08-08 10:44) [0]

Господа программисты, помогите решить как по мне не стандартный вопрос. Мне необходимо с помощь например Инди получить код страницы. Использую алгоритм:
     
     stream:TStream;
     st:tstrings;
.................................................
     IdHTTP.Get(href,stream);
     stream.Position:=0;
     st.LoadFromStream(stream);


 
oleg_teacher   (2014-08-08 10:44) [1]

При получении выскакивает ошибка:
c2n.me/iGZj6V
Захожу на сайт dond upv ille.com/login
(Все пробелы убрать)
Думал есть какая то моя ошибка получения, и попробовал использовать браузер+снифер... когда в браузере ввожу тот же адрес - в снифере видно тот же 401 код ошибки, НО в браузере всеравно показывает код страницы. (редиректов никаких нет).
Использую снифер+свой код программы.... та же ошибка в снифере показана, но!!!! в снифере видно, что есть код страницы.. почему я не могу получить в IdHTTP?
Ответ снифер+программа c2n.me/iGZrKf
Ответ снифер+браузер: c2n.me/iGZvV4


 
oleg_teacher   (2014-08-08 10:45) [2]

Как мне получить ответ от сервера (код страницы) даже при ошибке?


 
Плохиш ©   (2014-08-08 14:24) [3]

установи флаг hoInProcessAuth в TIdHTTP.HTTPOptions


 
oleg_teacher   (2014-08-08 15:09) [4]

Установил, ошибка продолжается... получить код страницы не могу((


 
oleg_teacher   (2014-08-08 15:39) [5]

Поставил параметр hoNoProtocolErrorException .. игнорирует ошибки, но код страницы так и не доступен... то есть пустая строка((( как браузеры и сниферы игнорируют ошибки?? хм...


 
oleg_teacher   (2014-08-08 15:43) [6]

а, и забыл.. кусочек кода получения гет запроса я брал в try except end; Не помагает.. просто если что исключение срабатывает(


 
Плохиш ©   (2014-08-08 16:16) [7]

хм, тут написано, что облом

https://www.eldos.com/forum/read.php?PAGEN_1=2&FID=7&TID=3852#nav_start


 
oleg_teacher   (2014-08-09 11:53) [8]

а как же побороть такую проблему? что использовать?


 
sniknik ©   (2014-08-10 00:43) [9]

procedure TMainForm.onError(const mes: string);
begin
 with REdContent do begin
   DefAttributes.Color:= clRed;
   Text:= mes;
 end;
end;

procedure TMainForm.ButGetClick(Sender: TObject);
begin
 Screen.Cursor:= crHourGlass;
 try
   try
     REdContent.DefAttributes.Color:= clBlack;
     REdContent.Lines.Text         := HTTPGet(Trim(EdUrl.Text));
   except
     on E: EIdHTTPProtocolException do onError(E.ErrorMessage);
     on E: Exception do onError(E.Message);
   end;
 finally
   Screen.Cursor:= crDefault;
 end;
end;


 
sniknik ©   (2014-08-10 00:50) [10]

+
связано, сначала не обратил внимания на используемую функцию (куски старой программы в которой, проверил, страница таки получатся, правда не там где ее обычно ждут)
function TMainForm.HTTPGet(const url: string; Data: TMemoryStream): string;
var
 len: integer;
begin
 SetProxy;
 SetSSL(url);
 try
   result:= HTTP.Get(url);
   edAcEnc.Text:= HTTP.Response.ContentEncoding;
   //if HTTP.Response.ContentEncoding = "gzip" then
   //  result:= GZDecompressStr(result);
   len:= Length(result);
   if len > 0 then
     Data.WriteBuffer(result[1], len);
 finally
   HTTP.Disconnect;
 end;
end;



Страницы: 1 вся ветка

Текущий архив: 2016.02.28;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.007 c
2-1408606960
lewka_s
2014-08-21 11:42
2016.02.28
Авторизация ВКонтакте


15-1427053261
Kerk
2015-03-22 22:41
2016.02.28
Конкурс


15-1434557781
Дмитрий С
2015-06-17 19:16
2016.02.28
Программа для размышления над структурой


15-1424691616
KSergey
2015-02-23 14:40
2016.02.28
Как избавиться от ленности в мозгах?


2-1408206610
nokia4ever
2014-08-16 20:30
2016.02.28
text