Var*_*ain 7 php soap web-services yii
我正在为客户开发 api。我收到了以下信息:
API Url: http://xyz-crm.example/WebAPI/Custom/project_name/XML/
Username: foobar
password: spameggs
Run Code Online (Sandbox Code Playgroud)
我需要在非 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);
Run Code Online (Sandbox Code Playgroud)
我只想首先对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();
Run Code Online (Sandbox Code Playgroud)
我收到错误: 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();
Run Code Online (Sandbox Code Playgroud)
执行在第一行本身停止,而不会转到第二行。
[由我编辑,hakre:由于审查已经显示更新 1中的错误配置选项已经在更新 2中没有解决,如果它仍然不会失败,那将是一个奇迹。停止执行,因为一个异常被抛出并且没有错误/异常处理完成]
URI 或文件结尾并不重要,甚至可以是.jpg,没有默认值。
看一下类似的问题:此 SOAP 错误是否意味着我认为的意思?
如果您将错误消息以及请求的 XML 输出放入问题中,将会很有帮助。
尝试将实例数组中的 SOAP 版本设置SoapClient为常量之一(尝试不同的常量):
new SoapClient($url, array("soap_version" => SOAP_1_1,.......
Run Code Online (Sandbox Code Playgroud)
或者SOAP_1_2...
要调试 XML,请尝试在发送请求之前/不发送请求时检查由 PHP SoapClient 调用创建的 XML中的答案
您更新的问题的错误消息看起来不像来自 PHP,看起来更像是来自网络服务的答案,意味着您的请求实际上正在工作。
| 归档时间: |
|
| 查看次数: |
16674 次 |
| 最近记录: |