首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在非WSDL模式下使用PHP SOAP客户端

在非WSDL模式下使用PHP SOAP客户端
EN

Stack Overflow用户
提问于 2013-10-29 08:36:09
回答 1查看 17.5K关注 0票数 7

我正在为客户端开发一个api。我已收到以下资料:

代码语言:javascript
代码运行次数:0
运行
复制
API Url: http://xyz-crm.example/WebAPI/Custom/project_name/XML/

Username: foobar
password: spameggs

我需要在非WSDL模式下将PHP SOAP客户端配置为相同的。我写了以下几句话,但似乎行不通:

代码语言:javascript
代码运行次数:0
运行
复制
$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

我做了以下修改:

代码语言:javascript
代码运行次数:0
运行
复制
$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

我尝试了以下方法,但仍然失败了:

代码语言:javascript
代码运行次数:0
运行
复制
$listing = $client->getListings(); 
$request = $client->__getLastRequest(); 

执行会在第一行本身停止,而不会转到第二行。

[编辑由我,hakre:由于审查已经显示错误的配置选项更新1,但更新2没有解决,这将是一个奇迹,如果它仍然不会失败。执行停止,因为抛出了一个Exception,并且没有执行错误/异常处理]

EN

回答 1

Stack Overflow用户

发布于 2013-10-29 09:08:59

Die或文件结束并不重要,它甚至可以是.jpg,没有默认情况。

看看类似的问题:Does this SOAP Fault mean what I think it means?

如果您将错误消息和请求的XML输出放到问题中,这将是有帮助的。

尝试将SoapClient实例数组中的SOAP版本设置为一个常量(尝试不同的常量):

代码语言:javascript
代码运行次数:0
运行
复制
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服务的答案,这意味着您的请求实际上是有效的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19653275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档