この質問は、PHP の cURL ライブラリを使用して JSON データを投稿する問題に取り組みます。ユーザーは、POST データを特定の URL に送信することを目的としたコード スニペットを提供します。ただし、コードは受信ページで投稿されたデータの取得に失敗し、空の配列が生成されます。
問題は、JSON データが投稿される方法が間違っていることにあります。さらに、コードは print_r($_POST) を使用して投稿されたデータを取得しますが、これは推奨される方法ではありません。
cURL を使用して JSON データを正しく投稿するには、次のことを確認することが重要です。データは適切に JSON エンコードされています。指定されたコード スニペットでは、「customer」POST フィールドの値のみが JSON エンコードされています。代わりに、POST データ全体を JSON エンコードする必要があります。
さらに、受信ページで投稿されたデータを取得するには、file_get_contents("php://input") 関数を利用できます。投稿された JSON データ。
これは、PHP で JSON データを正しく投稿する方法の例です。 cURL:
<?php $url = 'url_to_post'; $data = [ "first_name" => "First name", "last_name" => "last name", "email" => "email@example.com", "addresses" => [ "address1" => "some address", "city" => "city", "country" => "CA", "first_name" => "Mother", "last_name" => "Lastnameson", "phone" => "555-1212", "province" => "ON", "zip" => "123 ABC", ], ]; $data_string = json_encode($data); $ch = curl_init($url); # Setup request to send json via POST. curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_HTTPHEADER, ['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 仕様に従って JSON を使用して REST を実装する意向を表明します。プロセスを簡素化し、潜在的なエラーを減らすことができるため、Shopify API とのインターフェース用に特別に設計されたサードパーティ ライブラリを使用することを強くお勧めします。
以上がPHP cURL を使用して JSON データを正しく POST する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。