【发布时间】:2015-05-08 00:29:59
【问题描述】:
我正在尝试使用 PHP 将提交的表单字段传递给将在我们的数据库中创建用户记录的 Web 服务。我知道 Web 服务正在运行,因为我有 ColdFusion 代码,它能够成功地创建一个用户帐户,并从我的本地计算机提交参数。但是,由于我们的网站是在 Drupal (php) 中构建的,因此我需要在 php 中使用它。我也尝试了 wsclient(drupal 模块),但无济于事。
我遇到了这个帖子 (How to make a PHP SOAP call using the SoapClient class),这与我正在尝试做的事情相似,但我不断收到错误消息。这是我正在使用的代码。另外,我需要通过安全密码才能使用网络服务才能使用它。
class Create {
function Create($securityPassword)
{
$this->securityPassword = $securityPassword;
}
}
$client = new SoapClient("https://isgweb.entnet.org/iservices/Account.asmx?WSDL");
$create = new Create("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"); //web service password
$params = array(
"Create" => $create,
"Prefix" => "Mr",
"FirstName" => "John",
"LastName" => "Doe",
);
//print_r($params);
$response = $client->__soapCall('Create', array($params));
var_dump($response);
这是我得到的错误:
致命错误:未捕获的 SoapFault 异常:[soap:Server] 服务器无法处理请求。 ---> 对象引用未设置为对象的实例。在 C:\wamp\www\sandbox\webservice2.php:23 堆栈跟踪:#0 C:\wamp\www\sandbox\webservice2.php(23): SoapClient->__soapCall('Create', Array) #1 { main} 在第 23 行的 C:\wamp\www\sandbox\webservice2.php 中抛出
我试图调用的方法是“创建”方法。你可以看到它存在于wsdl url中
如果帮助我尝试通过 php 使用网络服务成功创建记录,我将不胜感激。
【问题讨论】:
标签: php web-services