Главная страница
    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
15-1434433610
SKIPtr
2015-06-16 08:46
2016.02.28
события при появлении определеного окна


2-1407505445
С-К
2014-08-08 17:44
2016.02.28
Вывести пустой TDateTimePicker


15-1434490201
Юрий
2015-06-17 00:30
2016.02.28
С днем рождения ! 17 июня 2015 среда


2-1408100312
lewka_s
2014-08-15 14:58
2016.02.28
Изменение иконки (значка)


15-1433936637
brother
2015-06-10 14:43
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский