2011-08-12 19 views
0

私はair appを持っています。クライアントがプロキシの背後にあるときはいつでもproxy-authorizationヘッダーを追加します。 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); 

私はシオマネキをチェックし、私が見ることは 第一応答が301で、プロキシ認証ヘッダーが 第二応答が407で、プロキシ認証ヘッダが追加されていない追加されていることです。

これ以降、OSプロンプトが表示されます。 誰もがこれに関するアイデアを持っていますか?

答えて

0

Authorizationヘッダーの場合とまったく同じ問題がありました。ここに私の解決策があります:

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

基本認証で1回のリクエストを送信するには、あなたが言及したアプローチは良いですが、多くのリクエストを行う必要がある場合などに便利です。パスワードで保護されているWebページを読み込んでも、この方法は機能しません。 URLRequestDefaults.setLoginCredentialsForHost()を使用する必要があります。 – Mady

関連する問題