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

Вниз

IdHTTP, Proxy, Get()   Найти похожие ветки 

 
Yegorchic ©   (2006-07-24 12:14) [0]

Здравствуйте!
У меня такая проблема: что бы мне закачать определённые файлы надо настройть прокси. Я указываю все параметры (host, port, pass, login) и при выполнении функции Get(AURL: String): string - всё идёт нормально, а про выполнении Get(AURL: String; AContentStream); - ничего не закачивается :(
Почему?

P.S: без прокси весь тот же код работает
P.P.S: Indy 10


 
Slym ©   (2006-07-24 13:48) [1]

что в качастве AContentStream передаешь?


 
umbra ©   (2006-07-24 14:14) [2]


> У меня такая проблема

на 99 процентов это не имеет к прокси никакого отношения. Если Вы получаете страницу в виде строки (т.е. прокси выдает вам данные), то я не вижу причин, покоторым он не выдаст Вам данные для потока, поскольку прокси НЕ ЗНАЕТ что Вы делаете с данными. Он их просто отдает Вам и все.


 
Yegorchic ©   (2006-07-24 21:22) [3]


> Slym ©   (24.07.06 13:48) [1]


TMemoryStream


> umbra ©   (24.07.06 14:14) [2]


Да, но я говорю просто как есть... мне надо перекачать из интернета файл размером около 1mb, он без прокси качается отлично, но с прокси не качается. Т.е. с прокси процедура  Get(AURL: String; AContentStream) НЕ выполняется, а без прокси выполняется.

Других больше различий просто в коде нет :-(


 
Slym ©   (2006-07-25 04:35) [4]

Position:=0;делаешь?
Stream:=TMemoryStream.Create;
try
 IDHttp.Get(AURL, Stream);
 Stream.Position:=0;
 //обработка данных
finally
 Stream.Free;
end;


 
Yegorchic ©   (2006-07-25 10:50) [5]

Нет, но дело то в том, что зависание начинается ещё до конца загрузки файла. Моментально, можно сказать, при выполнении Get().

И опять же, Position:=0 я не делаю там, где закачка без прокси и всё ОК...

Вот код:

function StartDownload;
begin
 HTTP:=TIdHTTP.Create(nil);
 MStream:=TMemoryStream.Create;
 HTTP.ProxyParams.ProxyServer:=p_host;
 HTTP.ProxyParams.ProxyPort:=p_port;
 HTTP.ProxyParams.ProxyUsername:=p_login;
 HTTP.ProxyParams.ProxyPassword:=p_password;
 HTTP.Request.Host:=URL_;
 HTTP.OnWork:=OnWork;
 HTTP.OnWorkBegin:=OnWorkBegin;
 HTTP.OnWorkEnd:=OnWorkEnd;
 HTTP.Head(URL_);
 HTTP.Get(URL_, MStream);
end;

procedure OnWork(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Integer);
begin
bytes_load:=AWorkCount;
end;

procedure OnWorkBegin(ASender: TObject; AWorkMode: TWorkMode; AWorkCountMax : Integer);
begin
bytes_total:=AWorkCountMax;
end;

procedure OnWorkEnd(ASender: TObject; AWorkMode: TWorkMode);
begin
 MStream.SaveToFile(FileSave);
 MStream.Clear;
end;



URL_, p_host, p_login, p_password: string;
p_port: integer;

Если прокси не нужна, то всё они (ну кроме URL_ естественно остаются пустыми).


 
Slym ©   (2006-07-25 11:49) [6]

Чем тебя так не устраивает?
Stream:=TMemoryStream.Create;
try
IDHttp.Get(AURL, MStream);
MStream.Position:=0;
MStream.SaveToFile(FileSave);
finally
Stream.Free;
end;


 
umbra ©   (2006-07-25 11:57) [7]

а что за прокси?


 
Yegorchic ©   (2006-07-25 12:10) [8]


> Slym ©   (25.07.06 11:49) [6]
>
> Чем тебя так не устраивает?


Попробовал, всё равно резальтат то как был.. не закачивается.

А почему ваш код должен был бы заработать? Просто различий сильных то, кажется, нет...


 
Yegorchic ©   (2006-07-25 12:17) [9]


> Yegorchic ©   (25.07.06 12:10) [8]


Ойй!! Извиняюсь, заработало!!

Только что то не понимаю, в чём разница?



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

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

Наверх




Память: 0.49 MB
Время: 0.037 c
15-1164699123
Prohodil_Mimo
2006-11-28 10:32
2006.12.17
У кого установлен IE7, помогите


3-1160383233
svt
2006-10-09 12:40
2006.12.17
Подскажите пожайлусата как выбрать из базы все повторяющиеся


15-1164356418
Курдль
2006-11-24 11:20
2006.12.17
"Гаишник удавится за иномарку"


4-1155197722
ph0sgen
2006-08-10 12:15
2006.12.17
проблема с ReadFile


15-1164392115
boy
2006-11-24 21:15
2006.12.17
помогите с TwElVe....плизззззззз