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

JSON データを送信するときに PHP cURL POST リクエストが空の配列を返すのはなぜですか?

DDD
DDDオリジナル
2024-12-15 14:09:33437ブラウズ

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

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).'
';

追加の考慮事項

  • Shopify API と対話するために、代わりにサードパーティのライブラリを使用することを検討してください。
  • サーバーが正しい Content-Type の JSON リクエストを受信するように設定されていることを確認してください。ヘッダー。

以上がJSON データを送信するときに PHP cURL POST リクエストが空の配列を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。