HTTP POST запросы - PullRequest
       5

HTTP POST запросы

0 голосов
/ 27 октября 2018

Взаимодействие между веб-сайтом продавца и веб-сервисом осуществляется через запросы 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

...