Magento2 / PHP — file_get_contents() возвращает разную выходную длину в 2 разных средах

#php #json #get #magento2 #file-get-contents

#php #json #получить #magento2 #file-get-contents

Вопрос:

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

У меня есть URL-адрес (конечная точка из API с 0 мерами безопасности), который возвращает мне 2,5 Мб json с почти 3000 продуктами. Здесь все хорошо. Дело в том,:

Если я использую следующий код на ЛОКАЛЬНОМ хосте с сервером XAMPP… ВСЕ ХОРОШО. Весь мой возвращенный JSON действителен, я могу использовать для него json_decode() и получать от этого удовольствие.

 $response= file_get_contents($url);
var_dump($response);
  

НО

Если я использую тот же код на своем хостинге, где у меня есть свой веб-сайт в производстве…все, что я получаю, это фрагментированный / иногда сокращенный вдвое JSON, который всегда завершается ошибкой при json_decode();

Проблема в том, что я see..is что я получаю контент разного размера.

https://ibb.co/sVDzBMJ

https://ibb.co/h7Z8GT7

На первом изображении у меня есть строка размером 2 551 849, на изображении escond у меня есть строка размером 817 600

Имейте в виду, что используется тот же код. Первое, о чем я сейчас думаю, это то, что, возможно, у моего хостинга есть ограничение на такие выходные данные …?

Есть ли такая вещь? Как я могу это отладить?

Я добрался до 10-й страницы Google / Stack и не смог найти ничего подобного.

Ответ №1:

Кажется, я нашел проблему.

Мой хостинг использовал LiteSpeed, и у них есть безопасный механизм защиты от DDoS-атак.

Похоже, что ответ от моей конечной точки был слишком большим, и LiteSpeed подумал, что это DDoS-атака.

Отключение такого механизма должно исправить это.