Пользовательские заголовки возможны с URLRequest / URLStream, используя метод GET? - PullRequest
4 голосов
/ 22 октября 2008

Довольно просто на самом деле:

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, тогда заголовок отправляется, но принимающее приложение требует GET, а не POST.

В документации упоминается черный список заголовков, которые не будут отправлены. my-bespoke-header не является одним из них. Возможно, стоит упомянуть, что исходящий запрос поступил из другого порта того же домена. В журнале политик ничего не сообщается, поэтому это кажется маловероятным, но можно ли это исправить принудительной загрузкой файла crossdomain.xml с allow-http-request-headers-from, несмотря на то, что это не проблема междомена? Или это просто недокументированная функция проигрывателя Flash Player, позволяющая отправлять только пользовательские заголовки с запросом POST?

Ответы [ 2 ]

6 голосов
/ 30 марта 2009

Если это ограничение недокументировано, это уже не так. См:

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

"[...] Из-за ограничений браузера настраиваемые заголовки HTTP-запросов поддерживаются только для запросов POST, но не для запросов GET. [...]"

6 голосов
/ 22 октября 2008

Из того, что я могу извлечь, кажется, что ваше предположение об отсутствии поддержки пользовательских заголовков для HTTP GET действительно является недокументированной функцией (или ошибкой?) В стандартных библиотеках.

В любом случае вы можете посмотреть, подойдет ли as3httpclient для ваших целей и позволит ли вам обойти эту проблему. Вот соответствующий фрагмент из записи в блоге разработчика этой библиотеки:

"Мне не удалось установить заголовок HTTP / GET запрос. Macromedia Flash Плеер позволяет установить только заголовок для запросов POST. Я обсуждал это проблемы с Тедом Патриком, и он сказал мне как я могу нам сокет достичь желал, и он был очень любезен, чтобы дать мне код-фрагмент, который получил меня началось. "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...