メソッドGETを使用してURLRequest / URLStreamでカスタムヘッダーを作成できますか?

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

  •  03-07-2019
  •  | 
  •  

質問

非常に簡単:

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

まだ、WireSharkでトラフィックを検査すると、 my-bespoke-header は送信されません。 URLRequestMethod.POST に変更し、一部のデータを req.data に追加すると、ヘッダーが送信されますが、受信アプリケーションではPOSTではなくGETが必要です。

ドキュメントには、送信されないヘッダーのブラックリストが記載されています。 my-bespoke-header はこれらのいずれでもありません。発信元の要求が同じドメインの異なるポートからのものであることを言及する価値があるかもしれません。 policyfileログには何も報告されないため、ありそうもないようですが、crossdomain.xmlに allow-http-request-headers-from を強制的にロードすることで解決できるのは、これはクロスドメインの問題ではありませんか?または、POSTリクエストでカスタムヘッダーのみを送信できるのは、単にドキュメント化されていないFlash Playerの機能ですか?

役に立ちましたか?

解決

私が収集できるものから、HTTP GETのカスタムヘッダーサポートの欠如についてのあなたの仮定は、実際には標準ライブラリの文書化されていない機能(またはバグ?)のようです。

いずれの場合でも、 as3httpclient が目的に合っているかどうかを確認し、この問題を回避します。この開発者のブログの投稿からの関連スニペットを次に示します。ライブラリ:

  

"のヘッダーを設定できませんでした   HTTP / GETリクエスト。 Macromedia Flash   Playerでは、ヘッダーのみを設定できます   POSTリクエスト用。これについて話し合った   テッド・パトリックとの問題と彼は私に言った   ソケットを達成する方法   希望し、彼は非常に親切でした   私はコードスニペット、私を手に入れた   "

他のヒント

この制限が一度に文書化されていなかった場合、それはもはや事実ではありません。参照:

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

" [...] ブラウザの制限により、カスタムHTTPリクエストヘッダーはPOSTリクエストでのみサポートされ、GETリクエストではサポートされません。 [...]"

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top