Я запускаю PHP под Apache, и я бы хотел отправить медленную струйку данных POST на страницу, которая будет писать сообщения в базу данных по мере поступления данных POST. Я отправляю данные из приложения .NET с помощью WebRequest
и я установил SendChunked
в true.
К сожалению, похоже, что PHP-скрипт не запускается до тех пор, пока не будут получены все данные POST. Я просмотрел журнал apache, и я вижу, что запрос начинается сразу, но операторы echo strftime(...)
в скрипте PHP показывают, что он не работает до тех пор, пока не будут получены все данные POST.
Есть ли способ сказать PHP начать сразу? Я попытался установить always_populate_raw_post_data = Off
в файле PHP.ini, но это не имело никакого значения. Мой запрос имеет тип содержимого application/octet-stream
, а $HTTP_RAW_POST_DATA
по-прежнему заполняется всеми данными POST.
Вы можете сделать это, используя метод HTTP PUT , но не с POST.
Когда клиент использует глагол PUT, данные передаются в PHP. К нему можно обращаться через байтовый поток потока php:://input
по байту, поскольку он отправляется от клиента.