2011-08-12 2 views
0

나는 에어 앱을 가지고 있는데 내 클라이언트가 프록시를 사용할 때마다 프록시 인증 헤더를 추가하려고합니다. urlRequest 헤더에 'proxy-Authoriztion'헤더를 추가하고 있는데도 여전히 사용자 이름/비밀번호를 묻는 OS 프롬프트가 표시됩니다. OS 스크립팅을 피하기위한 actionscript의 프록시 인증

var loader:HTMLLoader = new HTMLLoader(); 
var be:Base64Encoder = new Base64Encoder(); 
be.insertNewLines = false; 
be.encode("test" + ":" + "test");  
var urlRequest:URLRequest = new URLRequest("http://google.co.in"); 
urlRequest.authenticate = false; 
urlRequest.requestHeaders.push(new URLRequestHeader("Proxy-Authorization","Basic "+ be.toString())); 
page.htmlLoader.load(urlRequest); 

내가 피들러를 확인하고 내가 보는 것은 1 응답 (301)과 프록시 인증 헤더는 2 응답 (407)과 프록시 인증 헤더가 추가되지 않습니다 추가 점이다.

이 후 OS 프롬프트가 표시됩니다. 아무도 이것에 대한 아이디어가 있습니까?

답변

0

권한 헤더의 경우와 완전히 똑같은 문제가있었습니다. 여기 내 해결책은 다음과 같습니다.

var service:HTTPService = new HTTPService(); 
... 
var encoder:Base64Encoder = new Base64Encoder(); 
encoder.encode(userName+':'+password); 
service.headers["Authorization"] = "Basic " + encoder.toString(); 
... 
service.send(); 

일부 이유는 분명합니다. 시도해보십시오 (하지만 "Proxy-Authorization"을 사용하여 "Authorization"헤더를 변경하는 것을 잊지 마십시오)

+0

urlRequest를 사용하고 있습니다. HTTPService를 사용할 수 없습니다. – Mady

+0

기본 인증을 사용하여 단일 요청을 보내려면 언급 한 접근 방식이 좋지만 많은 요청을해야하는 경우 등. 암호로 보호 된 웹 페이지를로드하면이 방법이 작동하지 않습니다. URLRequestDefaults.setLoginCredentialsForHost()를 사용해야합니다. – Mady