Задать вопрос
Lobochkin
@Lobochkin
PHP Bitrix Vue Laravel

Как с помощью curl отправить POSTзапрос?

Доброго всем дня, при отправки запроса в компанию СДЕК через консоль всё работает , запрос выглядит так
curl -X POST --header 'Content-Type: application/x-www-form-urlencoded' 'https://integration.cdek.ru/new_orders.php' -d 'xml_request=<?xml version="1.0" encoding="UTF-8" ?><DeliveryRequest Number="0000033876WO" Date="2019-04-25T09:09:57" Account="2JewP7QZL***********z8NCbIIbKAw2" Secure="db25*********360f3c64b70" OrderCount="1"><Order Number="123485" SendCityPostCode="350000" RecCityPostCode="350000" RecipientName="Герусов Александр Валерьевич" RecipientEmail="gerusov14@mail.ru" Phone="89615096005" TariffTypeCode="136" DeliveryRecipientCost="137" DeliveryRecipientVATRate="VATX" DeliveryRecipientVATSum="0" SellerName="ИП Волженин Е.Г." SellerAddress="Ленинградская обл, Всеволожский р-н, Пос. Лесное, дом № 18, кв.6"><Address PvzCode="KSD5"/><Package Number="1" BarCode="krd61927-1" Weight="1000"><Item WareKey="158308" Cost="790" Payment="790" PaymentVATRate="VATX" PaymentVATSum="0" Weight="1000" Amount="1" Comment="Кронштейн для телевизора Ultramounts UM 814F черный"/></Package></Order></DeliveryRequest>'

А вот с помощью curl не получается , пустой экран, код ниже
$request = '<?xml version="1.0" encoding="UTF-8" ?>
<DeliveryRequest
Number="0000033876WO"
Date="2019-04-25T09:09:57"
Account="2Jew****************bIIbKAw2"
Secure="db25**********************64b70"
OrderCount="1">
<Order Number="12395" SendCityPostCode="350000" RecCityPostCode="350000" RecipientName="Герусов Александр Валерьевич" RecipientEmail="gerusov14@mail.ru" Phone="89615096005" TariffTypeCode="136" DeliveryRecipientCost="137" DeliveryRecipientVATRate="VATX" DeliveryRecipientVATSum="0" SellerName="ИП Волженин Е.Г." SellerAddress="Ленинградская обл, Всеволожский р-н, Пос. Лесное, дом № 18, кв.6">
<Address PvzCode="KSD5"/>
<Package Number="1" BarCode="krd61927-1" Weight="1000">
<Item WareKey="158308" Cost="790" Payment="790" PaymentVATRate="VATX" PaymentVATSum="0" Weight="1000" Amount="1" Comment="Кронштейн для телевизора Ultramounts UM 814F черный"/>
</Package>
</Order>
</DeliveryRequest>';

$host_api = 'https://integration.cdek.ru/new_orders.php';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $host_api);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, [
	'Content-Type: application/x-www-form-urlencoded'
	]
); 
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, [ 
    'xml_request' => $request
]);
$response = curl_exec($curl);
if ($response === false) { 
    echo "cURL Error: " . curl_error($curl); 
}
$info = curl_getinfo($curl);
curl_close($curl);
echo "<pre>";
print_r($response);
echo "</pre>";
  • Вопрос задан
  • 322 просмотра
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 1
slo_nik
@slo_nik Куратор тега PHP
Добрый день.
Возможно так будет работать?
// Generated by curl-to-PHP: http://incarnate.github.io/curl-to-php/
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://integration.cdek.ru/new_orders.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "xml_request=<?xml version=\"1.0\" encoding=\"UTF-8\" ?><DeliveryRequest Number=\"0000033876WO\" Date=\"2019-04-25T09:09:57\" Account=\"2JewP7QZL***********z8NCbIIbKAw2\" Secure=\"db25*********360f3c64b70\" OrderCount=\"1\"><Order Number=\"123485\" SendCityPostCode=\"350000\" RecCityPostCode=\"350000\" RecipientName=\"Герусов Александр Валерьевич\" RecipientEmail=\"gerusov14@mail.ru\" Phone=\"89615096005\" TariffTypeCode=\"136\" DeliveryRecipientCost=\"137\" DeliveryRecipientVATRate=\"VATX\" DeliveryRecipientVATSum=\"0\" SellerName=\"ИП Волженин Е.Г.\" SellerAddress=\"Ленинградская обл, Всеволожский р-н, Пос. Лесное, дом № 18, кв.6\"><Address PvzCode=\"KSD5\"/><Package Number=\"1\" BarCode=\"krd61927-1\" Weight=\"1000\"><Item WareKey=\"158308\" Cost=\"790\" Payment=\"790\" PaymentVATRate=\"VATX\" PaymentVATSum=\"0\" Weight=\"1000\" Amount=\"1\" Comment=\"Кронштейн для телевизора Ultramounts UM 814F черный\"/></Package></Order></DeliveryRequest>");
curl_setopt($ch, CURLOPT_POST, 1);

$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close ($ch);

Полезный сервис.
Ответ написан
Ваш ответ на вопрос

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

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