Пользовательские заголовки возможны с помощью URLRequest / URLStream с использованием метода GET?

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

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

Это было полезно?

Решение

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

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

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

Другие советы

Если когда-то это ограничение не было задокументировано, то теперь это уже не так.Видишь:

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top