cURL POST リクエストでの配列の使用
cURL を使用して画像の配列を送信しようとすると、最初の画像のみが送信されるという問題が発生することがあります。配列値が送信されます。この質問では、この問題を修正する方法を検討します。
元のコードには、配列構造に小さな欠陥があるようです。これを解決するには、http_build_query を使用して配列を正しくフォーマットすることをお勧めします:
$fields = array(
'username' => "annonymous",
'api_key' => urlencode("1234"),
'images' => array(
urlencode(base64_encode('image1')),
urlencode(base64_encode('image2'))
)
);
$fields_string = http_build_query($fields);
この変更により、配列がクエリ文字列に正しくエンコードされるようになります。以下の更新されたコードには、この変更が組み込まれています。
extract($_POST);
$url = 'http://api.example.com/api';
$fields = array(
'username' => "annonymous",
'api_key' => urlencode("1234"),
'images' => array(
urlencode(base64_encode('image1')),
urlencode(base64_encode('image2'))
)
);
$fields_string = http_build_query($fields);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
$result = curl_exec($ch);
echo $result;
curl_close($ch);
この更新されたコードを使用すると、画像の配列が POST リクエストで正しく送信されます。 API は期待どおりに両方の画像を受け取ります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3