ホームページ >バックエンド開発 >PHPチュートリアル >JSON データを送信するときに PHP cURL POST リクエストが空の配列を返すのはなぜですか?
PHP cURL で JSON データを POST し、読み取り可能な形式で返す方法
コードが、サーバーであっても JSON データを正しく送信しませんの場合、空の配列を返します。 Shopify API のように JSON を使用して REST を実装するには、この問題に対処する必要があります。
POST リクエストの修正
問題を解決するには、全体をエンコードする必要があります。 「顧客」フィールドだけでなく、JSON でデータを POST します。コードを次のように変更します。
$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";
POST データへのアクセス
他のページでは、サーバーの問題のため、$_POST を使用して POST データを取得できません。サイド解析。代わりに、POST された JSON を含む file_get_contents("php://input") を使用してください。データを読み取り可能な形式で表示するには:
echo '<pre class="brush:php;toolbar:false">'.print_r(json_decode(file_get_contents("php://input")),1).'';
追加の考慮事項
以上がJSON データを送信するときに PHP cURL POST リクエストが空の配列を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。