這篇文章介紹的內容是關於PHP學習筆記之Post上傳注意事項,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
今天原本是想用Postman模擬POST 上傳一組Json 資料到伺服器,結果發現上傳的資料伺服器始終接受不到。
伺服器程式碼:
<?php echo "<pre class="brush:php;toolbar:false">"; var_dump($_POST); var_dump($_REQUEST); echo ""; ?>
PostMan code:
POST /api.php/API/fish_woter_monitoring_add HTTP/1.1 Host: shrimp.cqjufy.com Content-Type: application/json Cache-Control: no-cache Postman-Token: 356cd424-c710-2d33-ffa7-29157f939c56 {"SensorData": [{"equipment_ID": "20180418","PH_value": "7.28","oxygen_value": "5.03","temperature_value": "21.4"}]}
結果發現伺服器總是接收不到資料。
百度後各位大神們都是建議使用php://input 讀取
file_get_contents('php://input')
另外還可以使用$GLOBALS['HTTP_RAW_POST_DATA'] 取得POST 原生數據,不過官方建議用php ://input 代替;
$GLOBALS['HTTP_RAW_POST_DATA']
三者的區別:
$_POST 、$HTTP_RAW_POST_DATA、php://input三者之间的区别
1.需要設定php.ini 中的 always_populate_raw_post_data
值為On 才會生效
2.比起php://input 需要更多的記憶體
##php://input
#不能用於enctype="multipart/ form-data"$_POST
1.無法解析如text/xml,application/json等非application/x-www.form-urlencoded 資料類型的內容
2.已證明無法用於enctype="text/plain"
3.當 HTTP POST 要求的Content-Type 是application/x-www-form -urlencoded
或multipart/form-data 時,會將變數以關聯數組形式傳入目前腳本。
#相關推薦:
以上是PHP學習筆記之Post上傳注意事項的詳細內容。更多資訊請關注PHP中文網其他相關文章!