Использование массивов в POST-запросах cURL
При попытке отправить массив изображений с помощью 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