我正在为客户端开发一个api。我已收到以下资料:
API Url: http://xyz-crm.example/WebAPI/Custom/project_name/XML/
Username: foobar
password: spameggs
我需要在非WSDL模式下将PHP SOAP客户端配置为相同的。我写了以下几句话,但似乎行不通:
$wsdl = null;
$options = array(
'uri' => 'http://xyz-crm.example/WebAPI/Custom/project_name/XML/',
'location' => 'http://xyz-crm.exmaple.com/WebAPI/Custom/project_name/XML/',
'login' => 'foobar',
'password' => 'spameggs'
);
$client = new SoapCLient($wsdl, $options);
首先,我只想对api进行一个成功的ping。看情况是否正常。我在这里做错什么了?
更新1
我做了以下修改:
$wsdl = null;
$options = array(
'uri' => "http://xyz-crm.example/WebAPI/Custom/project_name/XML/",
'location' => "http://xyz-crm.example/",
'Username' => "foobar",
'Password' => "spameggs",
'soap_version' => '1.2'
);
$client = new SoapClient($wsdl, $options);
$client = $client->getListings();
我得到了错误:looks like we got no XML document
[编辑由我,哈克雷:这次更新是作为反馈给answer #1。它使用缩短的URL (OP没有给出的原因)更改位置选项,并添加了soap_version选项(如答案#1中所建议的,但不是常量,而是字符串(包含无效的值),因此这应该不会产生错误,因此在答案1(
SOAP_1_1
常量)中给出了一个正确的选项值,并且根据意图,正确的值将是本例中的SOAP_1_2
常数)。OP评论的错误消息是"SOAP错误:错误版本“。
更新2
我尝试了以下方法,但仍然失败了:
$listing = $client->getListings();
$request = $client->__getLastRequest();
执行会在第一行本身停止,而不会转到第二行。
[编辑由我,hakre:由于审查已经显示错误的配置选项更新1,但更新2没有解决,这将是一个奇迹,如果它仍然不会失败。执行停止,因为抛出了一个Exception,并且没有执行错误/异常处理]
发布于 2013-10-29 09:08:59
Die或文件结束并不重要,它甚至可以是.jpg
,没有默认情况。
看看类似的问题:Does this SOAP Fault mean what I think it means?
如果您将错误消息和请求的XML输出放到问题中,这将是有帮助的。
尝试将SoapClient
实例数组中的SOAP版本设置为一个常量(尝试不同的常量):
new SoapClient($url, array("soap_version" => SOAP_1_1,.......
或者SOAP_1_2
..。
要调试XML,请尝试从Inspect XML created by PHP SoapClient call before/without sending the request获得答案
更新问题的错误消息看起来不像来自PHP的错误消息,它更像是来自not服务的答案,这意味着您的请求实际上是有效的。
https://stackoverflow.com/questions/19653275
复制相似问题