Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Что я делаю не так (Indy и IDHTTP)? [D7, Win2k]


Drema ©   (2005-07-21 10:44:00) 


procedure TForm1.Button1Click(Sender: TObject);
var
 url, proxy_serv, proxy_port, webdata, host: string;
 port: integer;
begin
 url:= edit1.Text;
 proxy_serv:=edit2.Text;
 proxy_port:=edit3.Text;
 port:=StrToInt(proxy_port);
 host:=edit4.text;
// ---- установим прокси -----

 if proxy_serv<>'' then
   begin
     IdHTTP1.ProxyParams.Create;
     IdHTTP1.ProxyParams.ProxyPort:=port;
     IdHTTP1.ProxyParams.ProxyServer:=proxy_serv;
     IdHTTP1.host:=proxy_serv;
     IdHTTP1.port:=port;
     //form1.IdHTTP1.ProxyParams.SetHeaders(); <- надо ли это ?
   end
   else
   begin
     IdHTTP1.ProxyParams.ProxyPort:=0;
     IdHTTP1.ProxyParams.ProxyServer:='';
   end;

// ------ и полезем в инет ------

try
 form1.IdHTTP1.Host:=host;
 if Not(IdHTTP1.Connected) then
   IdHTTP1.Connect;
 try
   webdata:=form1.idHTTP1.Get(url);
 finally
   IdHTTP1.Disconnect;
 end;
 except
   MessageDlg('Socket:Ошибка!', mtInformation, [mbOk], 0);
   IdHTTP1.Disconnect;
 end;
 IdHTTP1.Disconnect;
// ----- выведем результат -----

 memo1.Text:=webdata;
end;


Проблема в том, что без прокси все работает.
С указанием прокси - нет. В чем же ошибка? как правильно указывать прокси?
Может для сокетов нужен SOCKS прокси? Но у провайдера есть HTTP и причем без прокси работать нельзя.


Чапаев   (2005-07-22 09:39:00) [1]

> TTP1.ProxyParams.Create;
Бред.

> form1.IdHTTP1.Host:=host;
А чуть выше в случае, если прокси есть, ты уже назначил host. Причём вверху назначил правильно, а тута -- нет.

> if Not(IdHTTP1.Connected) then
>   IdHTTP1.Connect;
> try
>   webdata:=form1.idHTTP1.Get(url);
> finally
>   IdHTTP1.Disconnect;
> end;
Не знаю, не знаю... Делаю просто IdHttp.Get(...) -- и всё работает.


Slym   (2005-07-22 08:31:00) [2]

try
webdata:=idHTTP1.Get(edit1.Text);
except
 on E:Exception do
MessageDlg('Ошибка!'#13#10+E.Message,mtInformation, [mbOk], 0);
end;


Slym   (2005-07-22 08:29:00) [3]

procedure TForm1.Button1Click(Sender: TObject);
var webdata: string;
begin
// ---- установим прокси -----
if Length(edit2.Text)>0 then
  begin
    IdHTTP1.ProxyParams.ProxyServer:=edit2.Text;
    IdHTTP1.ProxyParams.ProxyPort:=StrToInt(edit3.Text);
  end else
  begin
    IdHTTP1.ProxyParams.ProxyPort:=0;
    IdHTTP1.ProxyParams.ProxyServer:='';
  end;
// ------ и полезем в инет ------
try
webdata:=idHTTP1.Get(edit1.Text);
except
 MessageDlg('Socket:Ошибка!', mtInformation, [mbOk], 0);
end;
memo1.Text:=webdata;
end;


Digitman   (2005-07-21 13:32:00) [4]


> Может для сокетов нужен SOCKS прокси? Но у провайдера есть
> HTTP и причем без прокси работать нельзя


солянка сборная из обрывочных сведений о том, что есть какие-то там SOCKS, прокси, HTTP и иже с ними и что вся эта байда в TIdHTTP каким-то невероятно волшебным образом сама по себе должна неважно как сочетаться и работать


> Reindeer Moss Eater ©   (21.07.05 12:45) [1]


дело Штирлица живет и процветает)


Reindeer Moss Eater   (2005-07-21 12:45:00) [5]

except
  MessageDlg('Socket:Ошибка!', mtInformation, [mbOk], 0);
  IdHTTP1.Disconnect;
end;


Ну и какой смысл в таком обработчике исключения?
Что бы никто и никогода не смог узнать причину его возникновения?


Наверх

Титульная страница Поиск, карта сайта Написать письмо