HTTPServiceまたはURLRequestを使用するときにFlexで認証ダイアログを回避するにはどうすればよいですか?
-
03-07-2019 - |
質問
これはこの質問。 RESTを使用するFlexアプリ(WindowedApplication)を作成しています。有効な認証で投稿するときはすべて問題ありませんが、無効なユーザー名またはパスワードをREST API(具体的にはTwitter REST API)に渡すと、認証ダイアログがポップアップします。
これは望ましいユーザーエクスペリエンスではなく、HTTPServiceとURLRequestを使用する場合の両方で発生します。ダイアログをキャンセルするためにキャッチできるイベントはないようです。
私のコードは次のとおりです。
var request:URLRequest = new URLRequest('http://twitter.com/statuses/update.json');
request.method = URLRequestMethod.POST;
var encoder : Base64Encoder = new Base64Encoder();
encoder.encode(this.user + ':' + this.password);
request.requestHeaders.push(new URLRequestHeader("Authorization", "Basic " + encoder.toString()));
var params:Object = new Object();
params.status = msg;
request.data = params;
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, HandleRequestComplete);
loader.load(request);
何か不足していますか?これにアプローチするより良い方法はありますか?
解決
Twitter APIドキュメントこちらから:
suppress_response_codes:この場合 パラメータが存在し、すべての応答 200 OKステータスで返されます コード-でもエラー。このパラメーター Flashに対応するために存在し、 で実行されているJavaScriptアプリケーション 200以外のすべてをインターセプトするブラウザー 反応。使用する場合、それは仕事です エラーを決定するクライアントの 応答本文を解析して状態を示します。 これらのエラーとして、慎重に使用してください メッセージは変更される可能性があります。
他のヒント
これは、URLリクエストが認証を処理しているためです。それを回避するには、次の手順を実行します。
request.authenticate = false;
よろしく!
アラン。
これが通常のFlexアプリで機能するかどうかはわかりませんが、AIRアプリケーションでは、許可された応答コードのリストを有効と見なすように設定できます。