1

我是 PHP 新手 - 一个多月前开始使用 PHP、JS 和 HTML,每天几个小时。

我在这方面做了很多功课,但在实施方面却一头雾水。我没有一个铁杆程序员可以和我坐在一起,因此在这里。但我敢肯定,如果这个问题得到解答,它将帮助那里的许多新手和有经验的程序员

问题 - 我可以理解 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 中发出请求 - 任何详细的外行指南 - PHP 特定的?

这是我正在努力解决的 SOAP 服务 - 按关键字查找公司

http://developer.dnb.com/service-directory/sales/16682663-1.html

如果有人能写一篇解释细节的博文,将不胜感激

PS:不确定我的挫败感是否合理,但是 SOAP 和 REST 概念使编程听起来像 Rocket Science。我已经花了一个多星期,每天 8 小时,虽然我有一个公平的理解,但对发出 SOAP 请求没有一个清晰的想法SOAP 概念。就 REST 而言,它让我非常困惑——我现在不想在这里碰那个东西。

4

2 回答 2

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>
';
于 2012-07-14T13:45:46.030 回答
0

PHP 中的 SOAP 比看起来要容易一些。如果您正在寻找长篇教程,DevZone上有一个不错的教程。我还会将SoapClient 类文档放在手边

使用 Soap 的要点

// $endpoint is the callback/uri of the WSDL.
// $options is an array of options.
$client = new SoapClient($endpoint, $options);

您可以在构造函数的详细信息中了解有关选项和端点的更多信息。

PHP 有一些神奇的方法__call就是其中之一。使用 SOAP 最简单的方法通常是调用一个可用的方法。例如:

$response = $client->getLoginToken(array(
    'siteid' => 'foo',
    'secid' => 'bar',
));

在这种情况下,getLoginToken 是一个 SOAP 方法调用。SOAP 客户端看到它不是对象上的方法并将其作为方法传递给 SOAP。传入的数组是作为参数传递给 SOAP 端点的参数。

我还会查看soapCall 页面上的示例。祝你好运。

于 2012-07-13T13:01:35.150 回答