Отправка XML-строки с curl в веб-сервис - PullRequest
0 голосов
/ 28 февраля 2012

У меня кошмарное понимание того, почему это не работает.

Мне нужно опубликовать информацию о потенциальных клиентах из базы данных на сервере потенциальных клиентов.

вот код, который я использую

    $xmlcontent = '<?xml version="1.0"?> 
<LeadpoolImport xmlns="http://www.xxxxxx.com/ns/LeadpoolImport/Version2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<Applications>'; 

$xmldetals = '<Application>
 <LeadBatch>1</LeadBatch>
  <Source>1</Source> 
  <MainApplicant> 
  <Applicant> 
  <Type>Client</Type>
   <Name>'; 

    $xmlt = "<Title>".$_GET['tit']."</Title>";
    $xmls = "<Surname>".$_GET['sname']."</Surname>";  


      $xmlend = '</Name>
      <ContactDetails> 
      <ContactTelephone> 
      <TelephoneNumber>00000000000000</TelephoneNumber> 
      </ContactTelephone> 
      </ContactDetails> 
      </Applicant> 
      </MainApplicant> 
      </Application> 
      </Applications> 
      </LeadpoolImport>';


    $xmltext = "xmlText=$xmlcontent$xmldetals$xmlt$xmls$xmlend&RequestID=54345456";

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_URL, "http://xxxxxxxxxx:xx/Leadpool/importleads.asmx?op=sendxxxxxLeadXML");
    //curl_setopt($ch, CURLOPT_URL, "http://nxxxxxx.xx.xx/dump.php?");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER , 0);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "$xmltext");
    $result = curl_exec ($ch);

Когда я отправляю сообщение в файл дампа на сервере, он создает правильно отформатированную строку XML, которая при публикации прямо в веб-сервисы работает отлично.

Проблема в том, что, когда я пытаюсь опубликовать сообщение напрямую, мы ничего не получаем, я предполагаю, что это проблема с тем, как я отправляю сообщение

Любая помощь будет отличной

спасибо

1 Ответ

0 голосов
/ 28 февраля 2012

Вам следует отправлять данные urlencode в POST.

Изменить следующую строку: $xmltext="xmlText=".urlencode("$xmlcontent$xmldetals$xmlt$xmls$xmlend")."&RequestID=54345456";

...