cabeçalhos personalizados possíveis com URLRequest / URLStream usando o método GET?

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

  •  03-07-2019
  •  | 
  •  

Pergunta

Muito simples:

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);

No entanto, se eu inspecionar o tráfego com o Wireshark, o my-bespoke-header não está sendo enviada. Se eu mudar para URLRequestMethod.POST e acrescentar alguns dados para req.data, em seguida, o cabeçalho é enviado, mas o aplicativo de recebimento requer um GET não um POST.

A documentação menciona uma lista negra de cabeçalhos que não são enviados. my-bespoke-header não é um desses. É possivelmente vale a pena mencionar que o pedido originário é de uma porta diferente no mesmo domínio. Nada é relatado no log de policyFile, por isso parece improvável, mas isso é algo que pode ser remediado pela força o carregamento de um crossdomain.xml com um allow-http-request-headers-from apesar do fato de que esta não é uma questão crossdomain? Ou é simplesmente um recurso não documentado do Flash Player que ele só pode enviar cabeçalhos personalizados com um pedido POST?

Foi útil?

Solução

Desde que eu possa reunir, parece que sua suposição sobre a falta de cabeçalhos personalizados suporte para HTTP GET é de fato um recurso não documentado (ou um bug?) Nas bibliotecas padrão.

Em qualquer caso, você pode querer ver se as3httpclient caberia suas finalidades e deixe você contornar esse problema. Aqui está um trecho relevante de um pós no blog do desenvolvedor deste biblioteca:

"Eu não era capaz de definir o cabeçalho de um HTTP / GET pedido. Macromedia flash Player permite definir apenas o cabeçalho para solicitações POST. Eu discuti isso problemas com Ted Patrick e ele me disse como eu pode nos soquete para alcançar o desejado e ele foi muito gentil para dar um me trecho de código, o que me pegou começado. "

Outras dicas

Se esta limitação foi indocumentados ao mesmo tempo, que não é mais o caso. Veja:

http://livedocs.adobe.com/ flex / 3 / langref / flash / net / URLRequest.html # requestHeaders

"[...] Devido às limitações do navegador, HTTP personalizados cabeçalhos de solicitação são suportados apenas para solicitações POST, não para solicitações GET. [...]"

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top