Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2016.02.28;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.002 c
2-1407761173
TTN
2014-08-11 16:46
2016.02.28
Преобразование строки с датой в формат даты


2-1407925873
ShuSha
2014-08-13 14:31
2016.02.28
Номер новой записи в таблице


3-1307102463
Geo
2011-06-03 16:01
2016.02.28
Ошибка при сохранении в blob


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


15-1434463120
brother
2015-06-16 16:58
2016.02.28
прошу еще помощи с решением





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский