通过php使用内部SOAP接口的函数

时间:2012-03-19 12:16:11

标签: php soap

我收到了我的合作伙伴的内部SOAP接口的手册。它说:

  

MyPARTNER Web服务以SOAP接口的形式提供。该网址提供该服务:https://justsomeurl.com:435/soap

然后一些关于授权等的bla bla,然后是关于Accessible Methods的一部分:

  

拉​​()

     

PULL方法用于从数据库中提取数据。方法   在内部名称下接收基于数据的唯一参数   requestXML。此参数包含结构化XML格式的数据。

     

字符串pull(String requestXML)

     

XML包含发出请求和响应所需的数据   数据被发回。

那么其他一些方法,错误代码,这里并不重要...... 问题是我对SOAP完全没有经验,所以我不知道如何通过PHP使用这个接口。我试图找到一些示例,教程,我现在对SOAP及其功能有了更多的了解但是仍然没有找到关于如何使用这样的接口的任何建议......

thanx任何帮助

1 个答案:

答案 0 :(得分:1)

Php带有PHP SOAP库,通常在常见的php安装后包含并启用。

Yuo被要求生成Web服务模式的客户端部分。您的合作伙伴应该为您提供Web服务的.wsdl。 wsdl描述了avialble方法,它们需要的参数以及它们返回的内容。

Tipically参数和返回值是数组结构

这可能是您代码的骨架:

 //build a client for the service
 $client = new SoapClient("partner.wsdl");

 //$client is now a sort of object where you can call functions
 //prepare the xml parameter
 $requestXML = array("parameter" => "<xml>Hello</xml>");

 //call the pull function this is like 
 $result = $client->__soapCall("pull", $requestXML );

 //print the value returned by the web service
 print_r($result);

下面是一个非wsdl示例 首先,位置参数是SOAP请求将被发送到的地址。 uri参数是SOAP服务的目标名称空间。这与xml名称空间有关。

您的示例代码可能是:       //对于URI规范,您应该查看合作伙伴文档。也许假的uri(像我的)可以工作       //为服务构建客户端      $ client = new SoapClient(null,array(          'location'=&gt;               “https://justsomeurl.com:435/soap”           'uri'=&gt; “瓮:Web服务”,           'trace'=&gt; 1));

 // Once built a non-wsdl web service works as a wsdl one
 //$client is now a sort of object where you can call functions
 //prepare the xml parameter
 $requestXML = array("parameter" => "<xml>Hello</xml>");

 //call the pull function this is like 
 $result = $client->__soapCall("pull", $requestXML );

 //print the value returned by the web service
 print_r($result);

这是一个有用的链接:http://www.herongyang.com/PHP/SOAP-Use-SOAP-Extension-in-non-WSDL-Mode.html