¿Cómo puedo evitar un diálogo de autenticación en Flex cuando uso HTTPService o URLRequest?
-
03-07-2019 - |
Pregunta
Esa no es una experiencia de usuario deseable, y ocurre tanto cuando uso HTTPService como URLRequest. No parece haber un evento que pueda capturar para cancelar el diálogo.
Así es como se ve mi código:
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);
¿Me estoy perdiendo algo? ¿Hay una mejor manera de abordar esto?
Solución
Desde el documento de la API de Twitter aquí :
suprime los códigos de respuesta: si esto parámetro está presente, todas las respuestas será devuelto con un estado de 200 OK código, incluso errores. Este parametro existe para acomodar Flash y Aplicaciones de JavaScript que se ejecutan en Los navegadores que interceptan todos los no-200. respuestas Si se usa, entonces es el trabajo del cliente para determinar el error estados al analizar el cuerpo de respuesta. Usar con precaución, ya que esos errores los mensajes pueden cambiar.
Otros consejos
Esto se debe a que su solicitud de URL está manejando la autenticación. Para evitar eso, haga lo siguiente:
request.authenticate = false;
Saludos!
Alain.
No sé si esto funciona en una aplicación Flex normal, pero en las aplicaciones de AIR puede establecer una lista de códigos de respuesta permitidos para que se consideren válidos.