2013-07-22 7 views
3

인증이 필요한 프록시를 올바르게 사용하는 방법. 벨로우즈 코드는 인증이 필요없는 프록시에서만 작동합니다.프록시 인증을 처리하는 방법

procedure SetProxy(username, password, proxy: ansistring); 
var 
    proxy_info : PInternetProxyInfo; 
begin 
    New(proxy_info); 
    UrlMkSetSessionOption(INTERNET_OPTION_PROXY_USERNAME, PAnsichar(username), Length(username)+1, 0); 
    UrlMkSetSessionOption(INTERNET_OPTION_PROXY_PASSWORD, PAnsichar(password), Length(password)+1, 0); 
    proxy_info^.dwAccessType := INTERNET_OPEN_TYPE_PROXY; 
    proxy_info^.lpszProxy := PAnsiChar(proxy); 
    proxy_info^.lpszProxyBypass := PAnsiChar(''); 
    UrlMkSetSessionOption(INTERNET_OPTION_PROXY, proxy_info, SizeOf(Internet_Proxy_Info), 0); 
end; 

procedure TForm3.FormCreate(Sender: TObject); 
begin 
    SetProxy('username','password','YYY.YYY.YYY.YYY:XXX'); 
    EmbeddedWB1.Navigate('http://www.whatsmyuseragent.com/');  
end; 
+1

왜 'TEmbeddedWB.ProxySettings'설정을 사용하지 않습니까? – TLama

+0

@tlama 이미 테스트를 마쳤습니다. 인증 창이 뜹니다. 이것은 훨씬 더 깨끗한 솔루션입니다. 그것이 효과 만 있다면 그건 그렇습니다. –

답변

0

많은 사람들이 탬버린으로 춤을 추고 싶어합니다. ;/

procedure TForm1.FormCreate(Sender: TObject); 
begin 
embeddedwb1.ProxySettings.SetProxy('ololo user agent','yourProxyServer:port'); 
embeddedwb1.Navigate('about:blank'); // still use proxy 
embeddedwb1.Navigate('your URI here'); 
end; 
관련 문제