我是使用Web服务和理解XML的新手。如果您觉得我应该阅读一些教程或文档,那么如果您能提供一些链接,我会很高兴。
我正在尝试通过Web服务执行一个简单的功能,
在提供的文档中,我有以下信息......
Web服务输入参数:
id ,数据类型= xs:string,lenght:10
密码,数据类型= xs:字符串,长度:25
组,数据类型= xs:字符串,长度:20
orderxml ,数据类型= xs:字符串,长度:2 ^ 16
我已经为最后一个参数提供了样本xml,当我尝试运行该函数时,我得到以下错误。
致命错误:未捕获的SoapFault异常:[a:InternalServiceFault] 值不能为空。参数名称:
中的属性
$client = new SoapClient('http://www.example.com/service?wsdl');
$xml = '<samplexml> </samplexml>';
$response = $client->Import(
array(
'Id' => '1234',
'password' => '123456',
'group' => 'test1',
'orderxml' => $xml
));
当我尝试
时 $response = $client->Import('test', 'test');
我得到以下内容......
我尝试了第二个想法,或许我需要发送原始XML?
致命错误:未捕获的SoapFault异常:[a:DeserializationFailed] 格式化程序在尝试反序列化时抛出异常 消息:反序列化操作的请求消息正文时出错 '进口'。从命名空间结束元素'Body' 期待'http://schemas.xmlsoap.org/soap/envelope/'。找到元素 来自命名空间''的'param1'。第2行,第162位。
答案 0 :(得分:0)
阿德里安 -
从你提供的片段中,没有太多东西可以确定你想要做什么。在不知道WSDL的确切性质的情况下,很难说出发生了什么 - 导入有效请求,是否采用正确格式等等。
我建议将您的WSDL加载到SOAPUI中并验证您的XML格式是否正确。在用PHP实际编写SOAP请求之前,这是一个非常有用的工具。
然后,我建议引用SoapClient类的PHP手册来正确格式化代码。