我正在使用soap尝试将订单上传到远程服务器但是当我发送XML时,SOAP期望我收到此错误:
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服务中没有任何更改。所以我不明白。
有人可以帮助我,指出我做错了什么吗?
答案 0 :(得分:0)
好的,我找到了。
对于以ID 4476运行的合作伙伴,我添加了一个假的邮政编码,而肥皂服务无法弄明白该怎么办,因此用户4476已损坏。更新地址信息后,肥皂服务接受了订单。