Форум: "Начинающим";
Текущий архив: 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