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

通过php使用内部SOAP接口中的函数,php,soap,Php,Soap,我收到了一份我的合作伙伴内部SOAP接口的手册。它说: MyPARTNER web服务以SOAP接口的形式提供。该服务在以下URL中可用: 然后是一些关于授权等的bla bla,然后是关于可访问方法的部分: 拉 PULL方法用于从数据库中提取数据。方法 在内部名称下接收唯一的基于数据的参数 请求XML。此参数包含结构化XML格式的数据 字符串提取(字符串请求XML) XML包含发出请求和响应所需的数据 数据被发回 还有一些其他的方法,错误代码,这里不重要。。。 问题是我对SOAP完全没有经验,所

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

MyPARTNER web服务以SOAP接口的形式提供。该服务在以下URL中可用:

然后是一些关于授权等的bla bla,然后是关于可访问方法的部分:

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

字符串提取(字符串请求XML)

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

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


thanx for any help

Php附带Php SOAP库,通常在普通Php安装后包括并启用这些库

您需要biuld Web服务模式的客户端部分。您的合作伙伴应该向您提供web服务的.wsdl。wsdl描述了Available方法、它们需要的参数以及它们返回的内容

典型的参数和返回值是数组结构

这可能是代码的框架:

 //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);
//为服务构建客户端
$client=newsoapclient(“partner.wsdl”);
//$client现在是一种可以调用函数的对象
//准备xml参数
$requestXML=array(“参数”=>“Hello”);
//调用pull函数,如下所示
$result=$client->\uuu soapCall(“pull”,$requestXML);
//打印web服务返回的值
打印(结果);
下面是一个非wsdl示例 首先,location参数是SOAP请求将发送到的地址。 uri参数是SOAP服务的目标命名空间。这与xml名称空间有关

您的示例代码可以是: //对于URI规范,您应该查看合作伙伴的文档。也许一个假的uri(比如我的)也能起作用 //为服务构建一个客户端 $client=新的SoapClient(空,数组( “位置”=> "https://justsomeurl.com:435/soap", 'uri'=>“urn:WebServices”, '跟踪'=>1))

//一旦构建,非wsdl web服务就可以作为wsdl服务工作
//$client现在是一种可以调用函数的对象
//准备xml参数
$requestXML=array(“参数”=>“Hello”);
//调用pull函数,如下所示
$result=$client->\uuu soapCall(“pull”,$requestXML);
//打印web服务返回的值
打印(结果);

这里有一个有用的链接:

是的,我已经读过关于这个库的内容,但是是否一定要有“.wsdl”?因为我所拥有的只是我上面提到的URL…有没有任何方法可以在没有“.wsdl”文件的情况下使用SoapClient?是的,有:好的,thanx代表链接,这对我来说更清楚一些…但是(可以随意称我为跛子)我仍然不清楚我应该为SoapClient构造函数的选项数组的参数“location”和“uri”设置什么。你能给我看一些使用我的URL的具体例子吗?我会非常感激的…我尝试了你的方法,还有几乎一百种其他的方法,结果总是一样-
致命错误:未捕获的SoapFault异常:[Receiver]d:\…\index.php:127堆栈跟踪:\\ 0d:\…\index.php(127):SoapClient->\uuSOAPCALL('pull',Array)\\ 1{main}在127行的D:\…\index.php中抛出
…我浏览了许多论坛,但没有结果。。。我真的很沮丧,因为我不确定我这边、服务器那边或我的合作伙伴那边是否有什么问题…谢谢你的耐心我也试着从你的上一个链接运行教程中的脚本,但也有一个致命错误:
Uncaught SoapFault exception:[HTTP]无法连接到D:\。。。堆栈跟踪:#0[内部函数]:SoapClient->u doRequest(“u soapCall('getTemp',Array)#2{main}在D:\…
 // 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);