PHPでrequest bodyの中身が受け取れない
外部サーバとの連携で、送られてくるリクエストの中身をPHPで取得しようとするとなぜか空だった。
テストは通っているのに何故…?としばらくハマり、headerの
Transfer-Encoding: chunked
の存在に気づく。
結論としては、apacheのバグ。
Transfer-Encoding: chunkedのとき(Content-lengthの指定がないとき)にContent-lengthが0→ボディが空として扱われてしまう。
apacheを最新版に更新したら直りました。
v2.4.47以降で解消されている模様。
参考: