【问题标题】:PHP SOAP service returns Value cannot be null. Parameter name: sPHP SOAP 服务返回值不能为空。参数名称:s
【发布时间】:2013-10-03 19:29:50
【问题描述】:

我正在尝试使用 soap 将订单上传到远程服务器,但是当我发送 SOAP 所期望的 XML 时,我收到了这个错误:

Exception: System.ArgumentNullException
Message: Value cannot be null.
Parameter name: s
Stack trace: at System.IO.StringReader..ctor(String s)
at System.Xml.XmlDocument.LoadXml(String xml)

我这样调用服务:

<?php
 $doc = new DomDoument('1.0', 'UTF-8');
 $doc->formatOutput = true;
  /* lots of code here */
 $xml = saveXML();
$client = new SoapClient('http://mx.biopont.com/services/Vision.asmx?wsdl',array("trace" => 1, 'features' => SOAP_SINGLE_ELEMENT_ARRAYS));
//$result = $client->RendelesFeladas(array('rendelesxml' => $xml));
try {
    $result = $client->__soapCall('RendelesFeladas', array("rendelesxml"=>$xml));
    }catch (SoapFault $e) {
      echo "SOAP Fault: ".$e->getMessage()."<br />\n";
    }
?>

DOMDocument 生成的 XML 是这样的

<?xml version="1.0" encoding="UTF-8"?>
<rendeles verzio="1.0">
  <fej>
    <partnerid>4476</partnerid>
    <idegen_megrendelesszam>d836033</idegen_megrendelesszam>
    <szallitasi_mod>51</szallitasi_mod>
    <szallitasi_megj>gfhgfhgfhfhh</szallitasi_megj>
  </fej>
  <tetelek>
    <tetel>
      <tetelszam>1</tetelszam>
      <cikkszam>102050009</cikkszam>
      <mennyiseg>1</mennyiseg>
    </tetel>
  </tetelek>
</rendeles>

我不知道我做错了什么。因为我是根据从 Web 服务开发人员那里获得的示例文件构建 XML 的。实际上,在我第一次运行调用时,一切都很好,因为我得到了错误,而且我没有对 xml 进行更改,SOAP 服务也没有更改。所以我不明白。

有人可以帮助我,指出我做错了什么吗?

【问题讨论】:

    标签: php xml web-services soap


    【解决方案1】:

    好的,我找到了。

    对于在 ID 4476 下运行的合作伙伴,我添加了一个虚假的邮政编码,soap 服务无法弄清楚该怎么做,因此用户 4476 已损坏。在我更新地址信息后,soap 服务接受了订单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-11
      • 1970-01-01
      • 2018-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多