File_get_contents("php://input") 与 $HTTP_RAW_POST_DATA:检索 JSON 请求数据
开发者在处理 JSON 请求数据时,经常会遇到这样的情况:面临使用 file_get_contents("php://input") 和$HTTP_RAW_POST_DATA。本文探讨了这两种方法的优缺点,并提供了选择哪种方法以获得最佳结果的指导。
file_get_contents("php://input")
file_get_contents ("php://input") 允许直接访问请求的原始正文。它比 $HTTP_RAW_POST_DATA 消耗更少的内存,并且不需要特定的 php.ini 指令。但是,它与“multipart/form-data”编码类型不兼容。
$HTTP_RAW_POST_DATA
$HTTP_RAW_POST_DATA 包含原始请求正文,包括表单数据和上传的数据文件。要使用它,必须在 php.ini 中将“always_populate_raw_post_data”设置为 -ON。此方法仅在请求不是“multipart/form-data”时有效。
在方法之间进行选择
如果您主要使用 JSON 数据并且执行以下操作不需要支持“multipart/form-data”,file_get_contents("php://input") 由于其简单性和较低的内存占用而成为首选选项。另一方面,如果“multipart/form-data”兼容性至关重要,则在 php.ini 中启用“always_populate_raw_post_data”后,需要 $HTTP_RAW_POST_DATA。
发送 JSON 数据的请求类型
关于通过XmlHTTPRequest发送JSON数据的请求类型,GET和POST都可以受雇。但是,POST 方法通常更合适,因为它允许更大的数据有效负载并且比 GET 更安全。使用 POST 方法时,请确保“Content-Type”标头设置为“application/json”,以指示发送的数据是 JSON 编码的。
以上是`file_get_contents(\'php://input\')` 或 `$HTTP_RAW_POST_DATA`:我应该使用哪种方法来检索 JSON 数据?的详细内容。更多信息请关注PHP中文网其他相关文章!