帮忙看看(100分)

  • 主题发起人 主题发起人 telnets
  • 开始时间 开始时间
T

telnets

Unregistered / Unconfirmed
GUEST, unregistred user!
我们用的是 代理的方式上网,每开一个IE的时候,IE会自动弹出一个用户名密码框,可是用下面这段代码却不能弹出密码框,也就连接不上,请问是何原因?我实验过,如果代理没有用户名密码的话,就能连上,调用的时候我选择的是采用IE的代理设置进行连接

其中
FProxy 为''
FUserName 为''
FPassword 为''

procedure TXXXHttp.Connect(Value: Boolean);
var
AccessType: Integer;
begin
if Value then
begin
{ Yes, but what if we're connected to a different Host/Port?? }
{ So take advantage of a cached handle, we'll assume that
Connect(False) will be called explicitly when we're switching
Host. To that end, SetURL always disconnects }
if (FConnected) then
Exit;

{ Proxy?? }
if Length(FProxy) > 0 then
AccessType := INTERNET_OPEN_TYPE_PROXY
else
AccessType := INTERNET_OPEN_TYPE_PRECONFIG;

{ Also, could switch to new API introduced in IE4/Preview2}
if InternetAttemptConnect(0) <> ERROR_SUCCESS then
SysUtils.Abort;

FInetRoot := InternetOpen(PChar(FAgent), AccessType, PChar(FProxy), PChar(FProxyByPass), 0);
Check(not Assigned(FInetRoot));
try
FInetConnect := InternetConnect(FInetRoot, PChar(FURLHost), FURLPort, PChar(FUserName),
PChar(FPassword), INTERNET_SERVICE_HTTP, 0, Cardinal(Self));
Check(not Assigned(FInetConnect));
FConnected := True;
except
InternetCloseHandle(FInetRoot);
FInetRoot := nil;
raise;
end;
end
else
begin
if Assigned(FInetConnect) then
InternetCloseHandle(FInetConnect);
FInetConnect := nil;
if Assigned(FInetRoot) then
InternetCloseHandle(FInetRoot);
FInetRoot := nil;
FConnected := False;
end;
end;
 
你可以試試別的Api,那個我剛好不記得了。
 
后退
顶部