file_get_contents(“php://input”)或$HTTP_RAW_POST_DATA,哪一个更好获取JSON请求的正文?

2022-08-30 06:58:18

file_get_contents("php://input")或者 - 哪一个更好获取JSON请求的正文?$HTTP_RAW_POST_DATA

使用客户端时,我应该使用哪种请求类型(或)来发送JSON数据?GETPOSTXmlHTTPRequest

我的问题受到这个答案的启发:如何使用curl将JSON发布到PHP。

引用这个答案:

从协议的角度来看,实际上更正确,因为无论如何您都没有真正处理http多部分表单数据。file_get_contents("php://input")


答案 1

实际上允许您读取原始请求正文。php://input

它是$HTTP_RAW_POST_DATA的内存密集程度较低的替代方案,不需要任何特殊的php.ini指令。从参考

php://input不可用于 。enctype="multipart/form-data"


答案 2

php://input 是一个只读流,允许您从请求正文中读取原始数据。在POST请求的情况下,最好使用 php://input 而不是$HTTP_RAW_POST_DATA,因为它不依赖于特殊的php.ini指令。此外,对于默认情况下未填充$HTTP_RAW_POST_DATA 的情况,它是激活always_populate_raw_post_data的内存密集程度较低的替代方法。

资料来源:http://php.net/manual/en/wrappers.php.php


推荐