Cabeceras personalizadas posibles con URLRequest / URLStream usando el método GET?
-
03-07-2019 - |
Pregunta
Realmente muy simple:
var req:URLRequest=new URLRequest();
req.url="http://somesite.com";
var header:URLRequestHeader=new URLRequestHeader("my-bespoke-header","1");
req.requestHeaders.push(header);
req.method=URLRequestMethod.GET;
stream.load(req);
Sin embargo, si inspecciono el tráfico con WireShark, el my-bespoke-header
no se está enviando. Si cambio a URLRequestMethod.POST
y agrego algunos datos a req.data
, se envía el encabezado, pero la aplicación receptora requiere un GET no un POST.
La documentación menciona una lista negra de encabezados que no se enviarán. my-bespoke-header
no es uno de estos. Posiblemente vale la pena mencionar que la solicitud de origen proviene de un puerto diferente en el mismo dominio. No se informa de nada en el registro de archivo de política, por lo que parece poco probable, pero esto es algo que puede remediarse mediante la carga de un crossdomain.xml con un allow-http-request-headers-from
a pesar del hecho de que Esto no es un tema de dominio cruzado? ¿O es simplemente una característica no documentada de Flash Player que solo puede enviar encabezados personalizados con una solicitud POST?
Solución
De lo que puedo deducir, parece que su suposición sobre la falta de compatibilidad de encabezados personalizados para HTTP GET es de hecho una característica no documentada (¿o un error?) en las bibliotecas estándar.
En cualquier caso, es posible que desee ver si as3httpclient se ajustaría a sus propósitos y le Usted trabaja alrededor de este problema. Aquí hay un fragmento relevante de un publicación en el blog del desarrollador de este biblioteca:
"no pude establecer el encabezado de un Solicitud HTTP / GET. Macromedia Flash El jugador te permite configurar solo el encabezado para solicitudes POST. Discutí esto Problemas con Ted Patrick y me lo dijo. ¿Cómo nos puede Socket para lograr el deseado y él fue muy amable para dar una código de código, que me consiguió comenzó. "
Otros consejos
Si esta limitación no estaba documentada al mismo tiempo, ya no es así. Ver:
http://livedocs.adobe.com/ flex / 3 / langref / flash / net / URLRequest.html # requestHeaders
" [...] Debido a las limitaciones del navegador, los encabezados de solicitud HTTP personalizados solo se admiten para solicitudes POST, no para solicitudes GET. [...] "