我正在为客户开发一个 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
[由我编辑,hakre:此更新是作为回答 #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中没有解决,如果它仍然不会失败将是一个奇迹。执行停止,因为抛出异常并且未完成错误/异常处理]