当我将XML传递给未进一步指定的XML时,从远程获取错误消息客户前缀=使用PHP在.Net中编写的“ECON”Web服务

时间:2014-07-15 13:21:18

标签: php .net xml soap nusoap

我试图访问网络服务上的某个方法,该方法应该返回“客户ID”'当提交以下格式的XML文档时:

<?xml version="1.0"?>
<Customers>
  <Customer prefix="ECON">
    <Property Name="First Name" Value="test"/>
    <Property Name="Surname" Value="user"/>
    <Property Name="Company" Value="company"/>
    <Property Name="Telephone" Value="123456"/>
  </Customer>
</Customers>

我正在创建这样的XML文档:

    try {
      // a new dom object, make tidy // 
        $dom = new domDocument; 
        $dom->formatOutput = true;
      // create the root and simple xml elements // 
        $root = $dom->appendChild($dom->createElement( "Customers" ));
        $sxe = simplexml_import_dom( $dom );
      // add the customer node with prefix //
        $customer = $sxe->addchild("Customer");
        $customer->addAttribute("prefix", "ECON");
      // add first name element //
        $firstname = $customer->addChild("Property");
        $firstname->addAttribute("Name", "Title");
        $firstname->addAttribute("Value", $first_name);
      // add surname element //
        $surname = $customer->addChild("Property");
        $surname->addAttribute("Name", "Surname");
        $surname->addAttribute("Value", $last_name);
      // add company element //
        $company = $customer->addChild("Property");
        $company->addAttribute("Name", "Postcode");
        $company->addAttribute("Value", $company_name);
      // add telephone element //
        $phone = $customer->addChild("Property");
        $phone->addAttribute("Name", "Telephone");
        $phone->addAttribute("Value", $telephone);
} 
catch( Exception $e ) 
{ 
    echo $e->getMessage(); 
}

使用以前的方法进行身份验证,将其提交给方法,如下所示:

$result = $client2->call('InsertCustomer', array('AuthenticationString' => $authenticate['AuthenticateUserResult'], 'Customers' => $sxe->asXML()));

但是它不断地将可怕的&#39; Object引用设置为未设置为对象的实例&#39;错误,我认为我需要以不同的方式提交XML以考虑基于.NET的服务,但没有多少谷歌搜索指向我正确的方向。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

对于其中一个XML属性,这是一个使用错误案例的简单案例,我没有意识到这对于.NET来说是多么重要,因为我已经习惯了常常宽容的PHP。

如果您正在编写与.NET或ASP通信的PHP脚本,请务必检查所有大小写,如果您遇到的问题没有意义。