InsaneRay
@InsaneRay

Как передать post запрос с параметром в curl?

Нужно отправить на адрес xml, содержимое которого должно хранится в $_POST['xml_request']
Я написал следующий код,
$send_url = 'https://integration.cdek.ru/new_orders.php';  

$bodyData = array (
  'xml_request' => $xml_result
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $send_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: text/xml; charset=utf-8',
    'Content-Length: '.strlen($bodyData)
    ) 
);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $bodyData);

$result = curl_exec($ch); 
curl_close($ch);

но сервер отвечает, что значение $_POST[xml_request] является пустым.
Каким образом можно передать $_POST с параметром ['xml_request'] в curl?
  • Вопрос задан
  • 2377 просмотров
Пригласить эксперта
Ответы на вопрос 1
@D3lphi
В $bodyData должна лежать строка с параметрами, а не массив. Преобразовать массив в строку можно следующим образом:
$bodyData = http_build_query(array (
  'xml_request' => $xml_result
));

Например, из массива ['key1' => 'val1', 'key2' => 'val2'] мы получим строку "key1=val1&key2=val2".
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы