我正在php中构建一个函数来检查用户和密码是否与外部数据库匹配,因此我可以提取电子邮件。他们为我创建了一个带wsdl的肥皂,所以我可以检查一下。
我已经可以检查用户是否存在,但每次我尝试发送SoapCall来请求电子邮件时,都会收到错误消息Caught exception:Internal Server Error。
我四处寻找这个错误,并且在请求期间我作为参数发送的数组有些错误。该数组包含我正在检查的用户的登录名/密码。
奇怪的是,如果我只发送只有一个参数的数组,那么我不会收到错误,但是我只收到一个空字符串,因为用户名和密码不匹配。
我使用相同的结构来检查用户是否存在,并且没有给出错误。
以下是我的连接代码:
checkEmail('HMichiels','xxxxxxx');
function checkEmail($pLoginStr,$pPassWordStr){
try{
$client = new SoapClient('https://milliarium.gabo-mi.com/Forms/Generic/Security/ExternalEmailService.asmx?WSDL', array('trace'=>1));
$params = array('pLoginStr'=>$pLoginStr,
'pPassWordStr'=>$pPassWordStr,);
$response = $client->__soapCall("GetUserEmail",array($params));
$responseS = $response->GetUserEmailResult;
//check what i'm sending inside the soapcall
echo "REQUEST:\n" . $client->__getLastRequest() . "\n";
} catch(SoapFault $fault){
echo 'Caught exception:', $fault->getMessage();
}
任何有经验的人都知道问题是什么?我在这个错误上丢失了几个小时><
TNX
答案 0 :(得分:1)
肥皂参数区分大小写,必须在服务器端匹配。您应该按照WSDL中的定义发送pPassWordStr
时发送pPasswordStr
。