使用PHP的SOAP请求

时间:2013-07-24 22:10:57

标签: php soap wsdl

我需要一些帮助才能开始使用SOAP API。我必须为客户网站的空缺部分实施API。

我需要通过PHP实现SOAP API。 我是否需要索取WSDL文件?或者包含的文档足以调用api

该文档描述了以下内容:

GetAllJob
返回搜索结果列表。仅获取请求。

参数

&安培; = DeveloperKey为

  - Required

&安培;客户ID =

  - Required, numeric only

&安培;关键字=

  - Optional, string, must be URL encoded
  - Can accept a single value, or a comma-separated list of values

&安培;位置=

  - Optional, string, must be URL encoded
  - Can accept a single city name, a postal code or a comma-separated city

&安培;类别=

  - Optional, numeric (Category code)
  - Can accept a single value only.
  - If the given value do not match any of category codes, this parameter is ignored. We do not attempt any partial matching
  - Reference the Categories service for a complete list of valid category names and codes

&安培; EducationLevel =

  - Optional, numeric (Education level code)
  - Can accept a single value only.
  - Reference the Education level service for a complete list of valid education level names and codes

示例输出 http://piratepad.net/soap-xml-sample-output

2 个答案:

答案 0 :(得分:0)

我建议使用Zend_Soap_Client,这是一个流行的库,用于连接SOAP API。

这是一个非常decent tutorial,它解释了如何使用该库。如果您使用composer进行依赖性管理(强烈建议使用),则可以绕过安装说明,只需安装软件包 zendframework / zend-soap

基础步骤是:

实例化一个新的Zend_Soap_Client,将WSDL传递给客户端,以便它知道API的方法+参数。

$this->soapClient = new Zend_Soap_Client(
    'http://url.to.your.api.com?WSDL'
);

调用可用的方法,传递任何必需的参数,然后获取结果属性。因此对于GetAllJob来说,它很可能是:

$allJobs = $this
    ->soapClient
    ->GetAllJob($parameters)
    ->GetAllJobResult
;

获取一些数据后,请将soap客户端集成到更广泛的应用程序中。

答案 1 :(得分:0)

感谢您的一切,我已经从php实现了SoapClient和__soapcall方法,现在它正在运行。

问题是没有wdsl文件。我已经获得了wdsl的位置,现在它正在运行。