Взаимодействие между веб-сайтом продавца и веб-сервисом осуществляется через запросы HTTP POST.POST должен содержать одно поле формы «request».Содержимое поля является запросом XML.Со следующей структурой:
<request
action="getCategories"
passcode="123456"
language="en">
</request>
образец ответа:
<response errorcode="0" errormessage="">
<categories>
<category>
<id>46</id>
<title><![CDATA[Accesories]]></title>
</category>
<category>
<id>122</id>
<title><![CDATA[Media accesories]]></title>
</category>
</categories>
</response>
Я пробовал CURL (редактировал и работает сейчас):
$xml_data = ['request' => '<request
action="getCategories"
passcode="123456"
language="en">
</request> '];
$headers = array(
"Content-type: text/xml"
// "Content-length: " . strlen($xml_data)
// "Connection: close"
);
$url = "http://remote.server.com/api";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
// curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
// curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($xml_data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
$output = curl_exec($ch);
curl_close($ch);
print_r(($xmlData));
И все хорошо... Я получаю:
<?xml version="1.0" encoding="UTF-8"?>
<response errorcode="0" errormessage="">
<categories>
<category>
<id>33</id>
<title><![CDATA[Audio HIFI]]></title>
</category>
<category>
<id>34</id>
<title><![CDATA[Audio HI End]]></title>
</category>
<category>
<id>35</id>
<title><![CDATA[Receivers]]></title>
</category>
</categories>
(имя сервера в этих примерах изменено)
Итак, мой код работает сейчас ... Спасибо всем за помощь.: P