Как избежать диалогового окна аутентификации во Flex при использовании HTTPService или URLRequest?

StackOverflow https://stackoverflow.com/questions/404199

Вопрос

Это связано с этот вопрос.Я пишу приложение Flex (WindowedApplication), использующее REST.Все в порядке, когда я публикую сообщения с действительной аутентификацией, но если я передам недействительное имя пользователя или пароль в 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 здесь:

подавить_коды_ответа:Если этот параметр присутствует, все ответы будут возвращены с кодом состояния 200 OK - даже ошибки.Этот параметр существует для размещения приложений Flash и JavaScript, работающих в браузерах, которые перехватывают все не 200 ответов.При использовании, то это задача клиента по определению состояний ошибки путем анализа тела ответа.Используйте с осторожностью, поскольку эти сообщения об ошибках могут измениться.

Другие советы

Это потому, что ваш URLRequest обрабатывает аутентификацию.Чтобы этого избежать, сделайте следующее:

request.authenticate = false;

С уважением!

Ален.

Я не знаю, работает ли это в обычном приложении Flex, но в приложениях AIR вы можете установить список разрешенных кодов ответов, которые будут считаться действительными.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top