我是PHP的新手 - 一个多月前开始使用PHP,JS和HTML,每天花几个小时。
我已经做了很多这方面的功课,但在实施方面却无法头脑清醒。我没有一个可以和我坐在一起的硬核程序员,因此在这里。但我相信如果这个问题得到解答,它会对很多新生儿和有经验的程序员有所帮助
问题 - 我可以理解SOAP的概念,但是无法如何制作简单的soap请求。 PHP中的步骤是什么。
//正确安装了php SOAP扩展
创建一个新的SOAP客户端:
$variable = new SoapClient ;
$inputxml = " the input XML file as a string ";
varibale__doRequest($input xml, "string location -??
我将XML输入作为变量..我指定了什么位置..需要启用缓存和缓存位置??,...) 这是我试图使用的PHP功能 - 如何使用此http://www.php.net/manual/en/soapclient.dorequest.php
//用于获取XML响应的PHP代码 //如何将变量作为字符串存储在变量中
有人可以在博客上使用PHP演示简单的SOAP请求。
我找不到一个例子,都专注于创建SOAP服务或SOAP服务器。我只想创建一个SOAP客户端并在PHP中发出请求 - 任何详细的laymnas指南 - PHP特定的?
这是我正在努力解决的SOAP服务 - 通过关键字查找公司
http://developer.dnb.com/service-directory/sales/16682663-1.html
如果有人可以撰写一篇解释详细信息的帖子,那将非常感激
PS:不确定我的挫败感是否合理,但SOAP和REST概念使编程听起来像Rocket Science ..我花了一个多星期,一天8小时,虽然我有一个关于制作SOAP请求的明确想法对SOAP概念的公平理解。就REST来说,它让我非常困惑 - 我现在不想在这里触摸那件事。答案 0 :(得分:2)
有php soap客户端,但你不必使用它.. 您可以手动构建请求并使用curl发布,然后您可以根据需要解析响应。
/**
* Request login body
*/
const REQUEST_LOGIN = '<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://www.company.com/soap" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding">
<env:Body>
<ns1:RequestLogin xmlns:ns1="http://www.company.com/soap">
<ns1:Name>%username%</ns1:Name>
<ns1:OrgId>0</ns1:OrgId>
<ns1:AuthType>simple</ns1:AuthType>
</ns1:RequestLogin>
</env:Body>
</env:Envelope>
';
答案 1 :(得分:0)
PHP中的SOAP比看起来容易一些。如果您正在寻找一个长篇教程,那么DevZone上有一个很好的教程。我也会保留SoapClient class documentation handy。
使用肥皂的要点
// $endpoint is the callback/uri of the WSDL.
// $options is an array of options.
$client = new SoapClient($endpoint, $options);
您可以在details for the constructor中了解有关其选项和终结点的更多信息。
PHP有一些magic methods,__call就是其中之一。使用SOAP的最简单方法通常是调用可用方法。例如:
$response = $client->getLoginToken(array(
'siteid' => 'foo',
'secid' => 'bar',
));
在这种情况下,getLoginToken是一个SOAP方法调用。 SOAP客户端发现它不是对象上的方法,并将其作为方法传递给SOAP。传入的数组是作为参数传递给SOAP端点的参数。
我还会查看soapCall page上的示例。祝你好运。