用NMHTTP控件,如何设置代理。
在工程中放入一个NMHTTP控件 ,本机装有iis ,该控件的属性全取默认值。
在button的onclick中输入:NMHTTP1->Get("地址");
在控件的OnSuccess事件中输入:
Memo1->Text = NMHTTP1->Header;
Memo2->Text = NMHTTP1->Body;
如果获取本机iis web服务器上的网页,没问题。
但想获取internet上的网页(我的机器是通过代理上网的)。
因此,设置控件的Proxy和ProxyPort属性为我的代理服务器地址,其它属性不变。
这样,获取一个外部网页,没有反应。但我通过ie可以上网。请问,哪里做的不对?
问题点数:0、回复次数:2Top
1 楼warton(创业群13734424 http://www.anywhy.cn)回复于 2002-12-05 12:13:23 得分 0
读取注册表,取得ie的代理,或者自己设置代理
Top
2 楼warton(创业群13734424 http://www.anywhy.cn)回复于 2002-12-05 12:16:13 得分 0
给你一段代码,读取代理:
type
TResultArray = array of string;
//·µ»Ø×Ö·û´®Êý×éÀàÐÍ
function Split(const source, ch: string): TResultArray;
var //·Ö¸î×Ö·û´®
temp: string;
i: integer;
begin
temp := source;
i := pos(ch, source);
while i <> 0 do
begin
SetLength(Result, Length(Result) + 1);
Result[Length(Result) - 1] := copy(temp, 0, i - 1);
delete(temp, 1, i);
i := pos(ch, temp);
end;
SetLength(Result, Length(Result) + 1);
Result[Length(Result)-1] := Temp;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
reg: Tregistry;
ProxyEnable:integer;
Fproxy:string;
proxyserver:string;
proxyport:integer;
arr:TResultArray;
begin
// FProxy:=Format('%s:%d',[Proxyserver,ProxyPort]);
reg := Tregistry.Create;
try
reg.RootKey := HKEY_CURRENT_USER;
if reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Internet Settings', True) then
begin
FProxy:=reg.ReadString('ProxyServer');
ProxyEnable:=reg.ReadInteger('ProxyEnable');
// label1.Caption:=fproxy;
// label2.Caption:=inttostr(ProxyEnable);
end;
finally
end;
if Fproxy<>'' then
begin
arr:=Split(fproxy,';');
proxyserver:=arr[0]; //ftpµÄ´úÀíÉèÖÃ
//label3.Caption:=proxyserver;
// label4.Caption:=arr[1];
arr:=split(arr[0],':');
//label3.Caption:=arr[0];
// label4.Caption:=arr[1];
proxyport:=strtoint(arr[1]); //ftpµÄ´úÀí¶Ë¿Ú
arr:=split(arr[0],'=');
proxyserver:=arr[1]; //ftpµÄ´úÀíµØÖ·
// label3.Caption:=arr[1];
form1.Caption:='FTPµØÖ·'+proxyserver+'¶Ë¿Ú'+inttostr(proxyport);
end;
// ........
end;Top




