ホームページ > バックエンド開発 > PHPチュートリアル > PHP cURL POST リクエストが空の JSON 配列を返すのはなぜですか?

PHP cURL POST リクエストが空の JSON 配列を返すのはなぜですか?

Patricia Arquette
リリース: 2024-12-17 22:30:14
オリジナル
548 人が閲覧しました

Why is my PHP cURL POST request returning an empty JSON array?

PHP cURL を使用した JSON データの投稿: 空の結果配列のトラブルシューティング

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート