Jak kontrolować akceptowanie kodowania w żądaniach API HTTP?

11

Powiązane z tym biletem dotyczącym problemów z pompowaniem danych .

Do tej pory wsparcie API sugerowało żądanie gzip zamiast deflacji .

Nie mogę jednak znaleźć sposobu na zastąpienie ustawień WP, które ustawiają deflację z najwyższym priorytetem jako akceptowanego kodowania dla wszystkich żądań.

Powiązane funkcje - WP_Http_Encoding::is_available()i WP_Http_Encoding::accept_encoding().

Czy jest jakiś haczyk lub inna opcja kontroli tego, czego mi brakuje?

Rarst
źródło
Usunąłem poprzednią odpowiedź, ponieważ nie była to pozytywna odpowiedź na twoje pytanie (a raczej odpowiedź stwierdzająca, że ​​nie mogę znaleźć prostej odpowiedzi). Ponadto, po drugim spojrzeniu na poprzednią odpowiedź, był zbyt krótki / cienki z kontekstem i przykładami.
Jonnybojangles,
Zmęczyłem się ponownie spojrzeniem na pytanie („Czy istnieje jakiś haczyk lub inna opcja kontrolowania tego, którego mi brakuje?”) I nie widzę żadnych bezpośrednich sposobów na zaczepienie lub filtrowanie klasy WP_Http_Encoding WordPressa (gdzie metody są dostępne, kodowanie akceptowalne i znaleziono dekompresję). W WP_http znajduje się kilka haczyków i filtrów, ale żadnego z nich nie widzę, by powodowały deflację. Niestety nie widzę żadnego sposobu, aby zmienić priorytet deflacji WordPressa poza wprowadzaniem zmian i przesyłaniem poprawek do rdzenia. Czy możesz podać przykłady kodu żądania WordPress wymagającego ustawienia metody deflacji?
Jonnybojangles,
@Jonnybojangles widzi odnośniki w pytaniu o przypadek użycia ... Prawdopodobnie jest to przypadek skrajny, ale brak kontroli nad tym jest do bani, gdy trzeba go zmienić.
Rarst

Odpowiedzi:

4

Całkiem nieoczekiwany przypadek, ale mimo to akceptowane typy kodowania powinny być filtrowalne. Widzę kilka sytuacji, w których przydałaby się precyzyjna, szczegółowa kontrola nad tym nagłówkiem (jak w przypadku dodawania interfejsu API, który wykorzystuje niestandardowe kodowanie).

Tak więc, chociaż nie ma na to haka magazynowego, stworzyłem dla niego bilet Trac i przesłałem łatkę . Jeśli wyrazisz poparcie w sprawie biletu, być może możemy zwiększyć hałas, aby włączyć go do przyszłej wersji.

EAMann
źródło
1
Dziękujemy za poruszenie problemu, ponieważ wiesz, że nie śledzę zbyt wiele. :)
Rarst
2

Krótka odpowiedź: nie, nie ma na to haka.

Długa odpowiedź: prawdopodobnie możesz przesłać łatkę na WordPress Trac , jeśli naprawdę potrzebujesz dostosować tę opcję. Osobiście nigdy nie miałem WP_Http_Encoding::accept_encoding()problemów, a na wspomniane pytanie można było odpowiedzieć ręcznie gzinflate(). IMHO, wydaje się, że jest to jedyne rozwiązanie, dopóki ktoś nie prześle łaty.

szwajcarski
źródło