首頁 >後端開發 >php教程 >為什麼我的 cURL POST JSON 資料在 PHP 中被解釋為空?

為什麼我的 cURL POST JSON 資料在 PHP 中被解釋為空?

DDD
DDD原創
2024-11-19 03:34:02576瀏覽

Why is my cURL POST JSON data interpreted as empty in PHP?

使用cURL 將JSON 發佈到PHP:資料解釋問題

嘗試在PHP 框架中執行cURL POST 指令,使用者在解釋發佈的數據時遇到困難。具體來說,POST 參數 -d 未如預期被識別,導致數組為空。

問題陳述

使用者嘗試使用cURL 指令:

curl -i -X POST -d '{"screencast":{"subject":"tools"}}'  \         
http://localhost:3570/index.php/trainingServer/screencast.json

儘管在Windows (PHP 5.2) 和Linux(相同PHP 版本)執行該命令,POST數據沒有被正確解釋。伺服器回應指示一個空的「screencast」數組,如下所示:

{"screencast":{"id":null,"subject":null,"body":null,
         "dataUrl":null,"dataMedium":null,"createdOn":null,"author":null}}

解決方案

問題源自於cURL 預設假設-d 參數指定表單編碼數據。要解決此問題,必須使用 -H 參數將 Content-Type 指定為 JSON:

curl -v -H "Content-Type: application/json" -X POST -d '{"screencast":{"subject":"tools"}}' \
http://localhost:3570/index.php/trainingServer/screencast.json

透過此修改,cURL 可以正確解釋發布的 JSON 數據,並且 POST 操作成功。

以上是為什麼我的 cURL POST JSON 資料在 PHP 中被解釋為空?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn