![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получить код страницы. [D7, XP]
oleg_teacher © (2014-08-08 10:44:00)Господа программисты, помогите решить как по мне не стандартный вопрос. Мне необходимо с помощь например Инди получить код страницы. Использую алгоритм:
stream:TStream;
st:tstrings;
.................................................
IdHTTP.Get(href,stream);
stream.Position:=0;
st.LoadFromStream(stream);
sniknik (2014-08-10 00:50:00) [1]+
связано, сначала не обратил внимания на используемую функцию (куски старой программы в которой, проверил, страница таки получатся, правда не там где ее обычно ждут)
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;
sniknik (2014-08-10 00:43:00) [2]
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;
oleg_teacher (2014-08-09 11:53:00) [3]а как же побороть такую проблему? что использовать?
Плохиш (2014-08-08 16:16:00) [4]хм, тут написано, что облом
https://www.eldos.com/forum/read.php?PAGEN_1=2&FID=7&TID=3852#nav_start
oleg_teacher (2014-08-08 15:43:00) [5]а, и забыл.. кусочек кода получения гет запроса я брал в try except end; Не помагает.. просто если что исключение срабатывает(
oleg_teacher (2014-08-08 15:39:00) [6]Поставил параметр hoNoProtocolErrorException .. игнорирует ошибки, но код страницы так и не доступен... то есть пустая строка((( как браузеры и сниферы игнорируют ошибки?? хм...
oleg_teacher (2014-08-08 15:09:00) [7]Установил, ошибка продолжается... получить код страницы не могу((
Плохиш (2014-08-08 14:24:00) [8]установи флаг hoInProcessAuth в TIdHTTP.HTTPOptions
oleg_teacher (2014-08-08 10:45:00) [9]Как мне получить ответ от сервера (код страницы) даже при ошибке?
oleg_teacher (2014-08-08 10:44:00) [10]При получении выскакивает ошибка:
c2n.me/iGZj6V
Захожу на сайт dond upv ille.com/login
(Все пробелы убрать)
Думал есть какая то моя ошибка получения, и попробовал использовать браузер+снифер... когда в браузере ввожу тот же адрес - в снифере видно тот же 401 код ошибки, НО в браузере всеравно показывает код страницы. (редиректов никаких нет).
Использую снифер+свой код программы.... та же ошибка в снифере показана, но!!!! в снифере видно, что есть код страницы.. почему я не могу получить в IdHTTP?
Ответ снифер+программа c2n.me/iGZrKf
Ответ снифер+браузер: c2n.me/iGZvV4