Как контролировать принятие кодировки по HTTP-запросам API?

11

Связанные с этим тикет о проблемах с завышением данных .

До сих пор поддержка API предлагала запрашивать gzip вместо deflate .

Однако я не могу найти способ переопределить настройки WP, которые устанавливают deflate с наивысшим приоритетом в качестве принятой кодировки для всех запросов.

Связанные функции - WP_Http_Encoding::is_available()и WP_Http_Encoding::accept_encoding().

Есть ли какой-нибудь крючок или другой вариант для контроля этого, которого мне не хватает?

Rarst
источник
Я удалил свой предыдущий ответ, потому что он не был положительным решением для вашего вопроса (скорее, ответ, что я не могу найти простой ответ). Кроме того, после второго взгляда на предыдущий ответ, он был слишком коротким / тонким с контекстом и примерами.
Jonnybojangles
Я устал изучать вопрос («Есть ли какой-нибудь хук или другой вариант для управления этим, что мне не хватает?») Снова и не вижу прямых средств для перехвата или фильтрации WordPress 'WP_Http_Encoding (где методы is_available, accept_encoding и распаковка найдены). В WP_http есть несколько хуков и фильтров, но ни один из них не дает эффекта deflate. К сожалению, я не вижу средств для изменения приоритета выдувания WordPress вне внесения изменений и отправки исправлений в ядро. Можете ли вы предоставить примеры кода запроса, сделанного WordPress, для которого необходимо установить метод deflate?
Jonnybojangles
@Jonnybojangles видят ссылки, о которых идет речь, для варианта использования ... Вероятно, это довольно сложный случай, но отсутствие контроля над этим - отстой, когда вам нужно его изменить.
Rarst

Ответы:

4

Совершенно неожиданный случай, но, тем не менее, принятые типы кодирования должны быть фильтруемыми. Я вижу несколько ситуаций, когда полезен точный, детальный контроль над этим заголовком (например, при добавлении API, использующего нестандартную кодировку).

Так что, хотя для этого нет ловушки, я создал для нее билет Trac и отправил патч . Если вы озвучиваете поддержку в заявке, возможно, мы сможем поднять достаточно шума, чтобы включить его в будущий выпуск.

EAMann
источник
1
Спасибо за то, что подняли вопрос, потому что вы знаете, что я мало занимаюсь. :)
Первый
2

Краткий ответ: нет, для этого нет крючка.

Длинный ответ: Вы можете отправить патч на WordPress Trac , если вам действительно нужно настроить эту опцию. Лично у меня никогда не было проблем, WP_Http_Encoding::accept_encoding()и на указанный вами вопрос можно было ответить вручную gzinflate(). ИМХО, похоже, это единственное решение, пока кто-то не представит патч.

swissspidy
источник