douqianrou9079 2015-08-25 20:32
浏览 29

PHP SoapClient字段缺少数据

EDITED Woe, Woe I say, the SoapClient has failed me, leaving my heart and parameter black and empty. Using this code:

class WebServices
{
  /** @var $client \SoapClient */
  public $client;

  /**
   * @param $username
   * @param $password
   */
  function __construct($username, $password)
  {
    $wsdl = URL;
    $options = array(
      'login'    => $username,
      'password' => $password,
      'trace'    => true
    );
    $this->client = new \SoapClient($wsdl, $options);
  }


  function deleteFromContacts($crmDeleteSettings, $record){
    if ($crmDeleteSettings == null){
      $crmUs = new CRMDeleteSettings();
      $crmDeleteSettings = $crmUs->toArray($record);
    }

    $data = array(
      'crmDeleteSettings' => $crmDeleteSettings,
      'importData'        => array('values' => array_values($record))
    );

    $result = $this->client->deleteFromContacts($data);
    return $result;
  }
}

I have the following array:

    Array
    (
        [crmDeleteSettings] => Array
            (
                [allowDataCleanup] => true
                [fieldsMapping] => Array
                    (
                        [0] => Array
                            (
                                [columnNumber] => 1
                                [fieldName] => number1
                                [key] => true
                            )

                    )

                [skipHeaderLine] => false
                [failFieldOnParseError] => true
                [crmDeleteMode] => DELETE_ALL
            )

        [importData] => Array
            (
                [values] => Array
                    (
                        [0] => XXXXXXXXXX
                    )

            )

    )

I am sending it via soap, using SoapClient, which fails, when I check last sent request, this is what I am sending:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="XXXXXXX">
  <SOAP-ENV:Body>
    <ns1:deleteFromContacts>
      <crmDeleteSettings>
        <allowDataCleanup>true</allowDataCleanup>
        <fieldsMapping>
          <columnNumber>1</columnNumber>
          <fieldName>number1</fieldName>
          <key>true</key>
        </fieldsMapping>
        <skipHeaderLine>true</skipHeaderLine>
        <crmDeleteMode>DELETE_ALL</crmDeleteMode>
      </crmDeleteSettings>
      <importData>
        <values/>
      </importData>
    </ns1:deleteFromContacts>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

As you can see, the importData node should have a child that includes the value I sent as an array member, yet it shows a single empty node, where I should see

<values>XXXXXXXXXX</values>

Does anyone have any ideas as to why I don't see that?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 linux驱动,linux应用,多线程
    • ¥20 我要一个分身加定位两个功能的安卓app
    • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
    • ¥15 IAR程序莫名变量多重定义
    • ¥15 (标签-UDP|关键词-client)
    • ¥15 关于库卡officelite无法与虚拟机通讯的问题
    • ¥15 目标检测项目无法读取视频
    • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
    • ¥100 求采集电商背景音乐的方法
    • ¥15 数学建模竞赛求指导帮助