非SOAP内置函数的PHP SOAP客户端错误

时间:2014-09-17 07:42:11

标签: php soap soap-client

有一个wcf服务器,我正在尝试连接它并发送请求。

代码是:

$url = "http://serverip:8080/example.svc?wsdl";

$params = array(
 'Username' => 'username',
 'Password' => 'password'
);

 $client = new SoapClient($url);

 var_dump($client->__getTypes()); //it works

 $result = $client->Login($params); //gives error

但每次我收到内部服务器错误。我花了5天时间搜索所有网页并尝试了所有不同的方法,但我总是收到内部服务器错误。错误如下:

protected 'message' => string 'The server was unable to process ...
private 'string' (Exception) => string '' (length=0) ...

如果我使用SOAP UI,我可以发送和获取数据,或者如果我调用" $ client-> __ getTypes()"从php服务器,我得到类型。但是如果我用PHP调用实现的函数它就不起作用。有人帮我吗?

非常感谢,

1 个答案:

答案 0 :(得分:0)

也许您应该将参数作为对象传递,如以下示例所示

try {
    $client = new SoapClient('http://serverip:8080/example.svc?wsdl');

    $params = new stdClass();
    $params->Username = 'Username';
    $params->Password = 'Password';

    $client->Login($params);
} catch (SoapFault $e) {
    // error handling
}