如何在PHP中正確讀取JSON POST資料?
Dec 16, 2024 pm 07:39 PM使用 PHP 讀取 JSON POST
使用需要發布 JSON 格式資料的 Web 服務時,正確處理 PHP 中的 POST 值至關重要。本文將引導您完成有效讀取和解析 JSON POST 資料的步驟。
問題:應用程式/JSON 內容類型為空$_POST 值
如果您遇到空$ 問題儘管指定application/json 作為Content-Type,但_POST 值很可能是由於您過濾post 值的方式所致。在這種情況下,常規的 $_POST 變數不適合讀取 JSON 格式的資料。
解決方案:使用 file_get_contents('php://input') 讀取 JSON
存取原始資料JSON POST 數據,需要使用 file_get_contents('php://input')。此函數讀取目前腳本的輸入流並傳回原始 HTTP 請求正文。
更新了接收端的PHP 代碼:
$json = file_get_contents('php://input'); $obj = json_decode($json);
登入後複製
處理POST 資料測試期間正確
測試Web 服務時,確保POST 資料以正確的格式發送至關重要。在您的測試程式碼中:
- 使用 json_encode($data) 將資料轉換為 JSON 字串。
- 在 HTTP 標頭中將 Content-Type 指定為 application/json。
更新測試code:
$data_string = json_encode($data); $ch = curl_init('http://webservice.local/'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data_string)) ); $result = curl_exec($ch); $result = json_decode($result);
登入後複製
標頭設定注意事項
確保header('Content-type: application/json ') 在接收端僅呼叫一次。
以上是如何在PHP中正確讀取JSON POST資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)