Невозможно использовать API-шлюз с gzip - PullRequest
0 голосов
/ 23 января 2019

У меня есть установочный API-шлюз с API, который возвращает JSON через интеграцию Lambda.

Когда я пытался сделать GET-вызов через браузер, я получил ошибки ERR_CONTENT_DECODING_FAILED в Chrome и NSURLErrorDomain:-1015 в Safari.

Когда я позвонил GET, используя curl, я смог получить ответ.

При поиске, я обнаружил, что проблема с gzip. Оказалось, что браузеры отправляют заголовок, указывающий, что они принимают gzip, но не могут обработать ответ. Когда я попытался сделать команду curl, используя --compressed, я получил похожую ошибку.

Чтобы решить эту проблему, я попытался включить «Шифрование содержимого включено» на шлюзе API с минимальным размером 0 байт. Это не решило проблему.

При попытке сделать вызов curl с флагом -compressed я передал заголовок 'Accept-Encoding' и установил его в ''. Это дало мне действительный ответ.

В конце концов, я использую AngularJS для выполнения HTTP-вызовов. Я попытался установить заголовок, как указано выше, но Angular не позволяет этого. (Выдает ошибку Refused to set unsafe header "Accept-Encoding")

Может кто-нибудь помочь мне понять, как я могу обойти эту проблему?

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