Я пытаюсь подключиться к оператору связи, используя их API-документацию.PHP CURL не отправляет xml в метод post
Мне нужно отправить запрос XML (в POST) им вместе с некоторыми учетными данными в методе GET.
Я строю свой сценарий и отправляю XML, но они сказали, что они не получают никакого xml.
<?php
$url = "http://<IP>:<PORT>/C2SReceiver?LOGIN=abc&PASSWORD=123";
$xml = '<?xml version="1.0"?>
<COMMAND>
<TYPE>k59</TYPE>
<DATE>19/03/2015 23:20:20</DATE>
<PIN>11000009</PIN>
<LOGINID>abc</LOGINID>
<PASSWORD>123</PASSWORD>
<EXTCODE>0100</EXTCODE>
<EXTREFNUM>1230567890</EXTREFNUM>
</COMMAND>';
$headers = array(
"Content-type: text/xml",
"Content-length: " . strlen($xml),
"Connection: close",
);
// configure
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// requesting
$data = curl_exec($ch);
// displaying response in XML
echo $data;
if(curl_errno($ch))
print curl_error($ch);
else
curl_close($ch);
?>
Когда я отправить запрос, их система говорит: «Неверный формат Сообщение от HashMap»
Они сказали, что они только получают параметры с помощью метода GET. Они не получили никакого XML.
Обратите внимание: если я изменил формат xml, их системный ответ «Недопустимый XML».
Если они не получают мой XML, как они могут сказать, что это недействительно.
Я трачу целый день, чтобы решить это. не знаю, что происходит не так. Пожалуйста, взгляните и предложите мне, что я могу сделать с моей стороны.
Спасибо.
не добавить заголовок длины содержимого вручную, шанс испортить его большой, и локон обрабатывает это автоматически, если вы не делаете это вручную, и вероятность того, что cURL испортит его, намного меньше, чем вероятность того, что вы его испортили – hanshenrik
не добавляйте заголовок «Соединение: закрыть», либо нужно просто установить CURLOPT_FORBID_REUSE = > правда, вот почему его там, я считаю – hanshenrik
Я удалил Content-Length, все еще ту же ошибку. любое другое возможное исправление? – Shuhail