2010-02-17 13 views
5

Estoy usando URLLoader para POSTAR a un servidor. La respuesta xml del servidor puede responder con un error 404 o 403 (prohibido). Sin embargo, no puedo obtener los códigos de respuesta.no se puede obtener el código de respuesta HTTP/encabezados en actionscript 3?

Aquí está el código de estado

var urlString:String = "some url"; 
    var urlRequest:URLRequest = new URLRequest(urlString); 
    var loader:URLLoader = new URLLoader(); 
    loader.addEventListener(Event.COMPLETE, setXMLData); 
    loader.addEventListener(IOErrorEvent.IO_ERROR, ioHandler); 
    loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); 

//... 

public function httpStatusHandler(evt:HTTPStatusEvent):void { 
    trace("status is " + evt.status); 
} 

es siempre 0, independientemente de si vuelvo 200, 400, 404, 301, 500, etc ...

¿Alguna idea?

Respuesta

3

Para AIR Only, puede utilizar httpResponseStatus. De lo contrario, en Flash/Flex sin AIR no puede.

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/URLLoader.html#event:httpResponseStatus

httpResponseStatus Evento
Evento Tipo de objeto: flash.events.HTTPStatusEvent HTTPStatusEvent.type propiedad = flash.events.HTTPStatusEvent.HTTP_RESPONSE_STATUS

Versión del lenguaje: ActionScript 3.0 Versiones en tiempo de ejecución: AIR 1.0 AIR 1.0

Se distribuye si una llamada al método load() intenta acceder a los datos a través de HTTP, y Adobe AIR puede detectar y devolver el estado código para la solicitud A diferencia del evento httpStatus, el evento httpResponseStatus se entrega antes que cualquier dato de respuesta. Además, el evento httpResponseStatus incluye valores para las propiedades responseHeader y respuestaURL (que no están definidas para un evento httpStatus. Tenga en cuenta que el evento httpResponseStatus (si lo hay) se enviará antes (y además) a cualquier evento completo o error.

+0

Sí, he llegado a la conclusión de que tampoco lo soportaban. ¡gracias chicos! – user139078

0

la capacidad de mirar los encabezados está limitada en varios navegadores, por lo que flash tiene un problema al pasar la información. Esto se debe principalmente a la configuración del navegador, pero todavía tengo que encontrar uno donde realmente funcione. status event output.

me di por vencido y tenía el archivo de impresión del código de respuesta en mis proyectos, no es maravilloso (y algo de derrotar el punto), pero parece que funciona.

0

Como respuesta tardía (Fwiw):.

Por lo que he leído, los códigos de estado que recibe depende de qué navegador del reproductor de Flash se ejecuta en

One article dice que sólo se puede obtener 200 o 500. One SO question dice que obtuvieron 207 en Chrome pero 0 en Firefox.

Personalmente, he probado usando el reproductor Flash dev y una versión ActiveX y pude obtener muchos códigos de estado HTTP 2XX/4XX (pero no pude obtener los códigos de redireccionamiento 3XX que probé porque las solicitudes redirigido y devuelto 200s).

Cuestiones relacionadas