En-têtes personnalisés possibles avec URLRequest / URLStream à l'aide de la méthode GET?

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

  •  03-07-2019
  •  | 
  •  

Question

C'est très simple, vraiment:

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

Pourtant, si j'inspecte le trafic avec WireShark, l'en-tête my-bespoke-header n'est pas envoyé. Si je change en URLRequestMethod.POST et que j'ajoute des données à req.data , l'en-tête est envoyé, mais l'application réceptrice requiert un élément GET, pas un POST.

La documentation mentionne une liste noire d’en-têtes qui ne seront pas envoyés. my-bespoke-header n'en fait pas partie. Il est peut-être intéressant de mentionner que la demande d'origine provient d'un port différent du même domaine. Rien ne figure dans le journal policyfile, donc cela semble peu probable, mais est-ce une solution à laquelle on peut remédier en chargeant de force un crossdomain.xml avec un allow-http-request-header-from , même si Ce n'est pas une question de domaines croisés? Ou s'agit-il simplement d'une fonctionnalité non documentée de Flash Player qui ne peut envoyer que des en-têtes personnalisés avec une demande POST?

Était-ce utile?

La solution

D'après ce que je peux comprendre, il semble que votre supposition concernant le manque d'en-têtes personnalisés ne gère pas HTTP GET. Il s'agit en effet d'une fonctionnalité non documentée (ou d'un bogue?) dans les bibliothèques standard.

Dans tous les cas, vous voudrez peut-être savoir si as3httpclient correspond à vos besoins et laissez vous travaillez autour de ce problème. Voici un extrait pertinent d'un post sur le blog du développeur de cette bibliothèque:

  

"Je n'ai pas pu définir l'en-tête d'un message.   Requête HTTP / GET. Macromedia Flash   Le joueur vous permet de définir l'en-tête uniquement   pour les demandes POST. J'ai discuté de ça   problèmes avec Ted Patrick et il m'a dit   comment je peux nous Socket pour atteindre le   désiré et il était très gentil de donner un   me code-snippet, qui m'a   commencé. "

Autres conseils

Si cette limitation était non documentée à la fois, ce n'est plus le cas. Voir:

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

"[...] En raison des limitations du navigateur, les en-têtes de requêtes HTTP personnalisés ne sont pris en charge que pour les requêtes POST, et non pour les requêtes GET. [...]"

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top