PHP cURL を使用して JSON データを投稿しようとすると、結果の配列が空のままになるという問題が発生する場合があります。 。この記事では、この問題に対処し、解決策を示します。
間違った JSON 投稿
提供されたコードでは、JSON データが投稿用に正しくフォーマットされていません。 curl_setopt($ch, CURLOPT_POSTFIELDS, array("customer" => $data_string)) を使用する代わりに、データ配列全体を JSON としてエンコードし、ペイロードとしてポストする必要があります。curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array( 「顧客」 => $data))).
予期しない結果
正しい JSON 形式であっても、print_r ($_POST) を使用して投稿されたデータを取得することは効果がありません。受信 JSON データにアクセスするには、受信ページで file_get_contents("php://input") を使用します。
改良されたコード スニペット
次のコード スニペットは、正しいアプローチ:
$ch = curl_init($url); # Setup request to send json via POST. $payload = json_encode(array("customer" => $data)); curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json')); # Return response instead of printing. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); # Send request. $result = curl_exec($ch); curl_close($ch); # Print response. echo "<pre class="brush:php;toolbar:false">$result";
サードパーティライブラリ
Shopify API とのインターフェースにサードパーティ ライブラリを活用することを検討してください。これにより、プロセスが簡素化され、追加機能が提供されます。
以上がPHP cURL POST リクエストが空の JSON 配列を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。