2014-01-22 2 views
1

Мыльный сервер выдает ошибку из-за пустого поля altough я отправляю его. Вот результат __getLastRequest. Поле CreateDate не должно быть пустым.Мыло Ликвидация моих данных

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/"><SOAP-ENV:Body><ns1:PreliminaryApplication><ns1:DopingPreliminaryApplication><ns1:SourceID>1</ns1:SourceID><ns1:FullName>Array</ns1:FullName><ns1:Gsm>Array</ns1:Gsm><ns1:EMail>Array</ns1:EMail><ns1:CampaignID>1</ns1:CampaignID><ns1:DataPackageID>1</ns1:DataPackageID><ns1:VoicePackageID>1</ns1:VoicePackageID><ns1:SpecialProductPackageID>1</ns1:SpecialProductPackageID><ns1:CreateDate/><ns1:Description>Array</ns1:Description></ns1:DopingPreliminaryApplication></ns1:PreliminaryApplication></SOAP-ENV:Body></SOAP-ENV:Envelope> 

это моя просьба:

$client->PreliminaryApplication(array(
      'DopingPreliminaryApplication' => 
       array(
        'SourceID' => array(0 => -1),        // 
        'FullName' => array(0 => $fullName), 
        'Gsm'  => array(0 => $gsm), 
        'EMail' => array(0 => $this->input->post('email')), 
        'CampaignID' => array(0 => 1), 
        'DataPackageID' => array(0 => 2), 
        'VoicePackageID' => array(0 => 3), 
        'SpecialProductPackageID' => array(0 => 4), 
        'CreateDate' => array(
         0 => $date->format('c') 
        ), 
        'Description' => array(
         0 => 'test' 
        ) 
       ) 
     )); 

это XML, что сервер должен

<?xml version="1.0" encoding="utf-8"?> 
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
     <soap:Header> 
     <AuthHeaderDopingWebService xmlns="http://tempuri.org/"> 
      <Username>string</Username> 
      <Password>string</Password> 
     </AuthHeaderDopingWebService> 
     </soap:Header> 
     <soap:Body> 
     <PreliminaryApplication xmlns="http://tempuri.org/"> 
      <DopingPreliminaryApplication> 
      <SourceID>int</SourceID> 
      <FullName>string</FullName> 
      <Gsm>string</Gsm> 
      <EMail>string</EMail> 
      <CampaignID>int</CampaignID> 
      <DataPackageID>int</DataPackageID> 
      <VoicePackageID>int</VoicePackageID> 
      <SpecialProductPackageID>int</SpecialProductPackageID> 
      <CreateDate>dateTime</CreateDate> 
      <Description>string</Description> 
      </DopingPreliminaryApplication> 
     </PreliminaryApplication> 
     </soap:Body> 
    </soap:Envelope> 

Спасибо за вашу помощь.

ответ

1

Вам не нужны все эти массивы. Протектор:

try { 
    $client  = new SoapClient('http://dcpanel.doping.com.tr/DopingPreliminaryApplicationManagamentService.asmx?WSDL'); 
    $headerBody = array(
     'AuthHeaderDopingWebService' => array(
      'Username' => 'username', 
      'Password' => 'password' 
     ) 
    ); 
    $header  = new SOAPHeader("http://tempuri.org/", 'AuthHeaderDopingWebService', $headerBody); 
    $client->__setSoapHeaders($header); 
    $date = new DateTime('now'); 
    $result = $client->PreliminaryApplication(
     array(
      'DopingPreliminaryApplication' => (object)array(
        'SourceID'    => -1, 
        'FullName'    => $fullName, 
        'Gsm'      => $gsm, 
        'EMail'     => $this->input->post('email'), 
        'CampaignID'    => 1, 
        'DataPackageID'   => 2, 
        'VoicePackageID'   => 3, 
        'SpecialProductPackageID' => 4, 
        'CreateDate'    => $date->format('c'), 
        'Description'    => 'test' 
       ) 
     ) 
    ); 
    var_dump($result); 
} catch (Exception $e) { 
    echo "error" . $e->getMessage(); 
} 
+0

У меня ошибка. System.NullReferenceException: ссылка на объект не установлена ​​в экземпляр объекта. Я не знаю, зачем им нужна эта структура :( – user305015

+0

вы можете предоставить WSDL для этой услуги? –

+0

Я пробовал auth. Никакой разницы – user305015

Смежные вопросы