PHP Soap客户端版本不匹配


PHP SoapClient Version Mismatch

除了这个错误消息之外,这里没有什么可写的

:肥皂错误对象 ( [消息:受保护] => 错误版本 [字符串:异常:私有] => [代码:受保护] => 0 [文件:受保护] => C:''wamp''www'soap''phpclient.php [行:受保护] => 10 [跟踪:异常:私有] => 数组 ( [0] => 数组 ( [文件] => C:''wamp''www'soap''phpclient.php [行] => 10 [函数] => __call [类] => 肥皂客户端 [类型] => -> [参数] => 数组 ( [0] => getIMIPremium [1] => 数组 ( [0] => 数组 ( [imiPolicy] => 数组 (

[到期日期] => 23-09-2013 [imi保险] => 数组 ( [项目] => 数组 ( [项目] => 数组 ( [年龄] => 23 [基本保险] => 33233 [封面愤怒类型] => 12 [出生日期] => 26-09-1986 [预先存在的疾病] => 否 ) ) ) [开始日期] => 12-09-2009 [无保险] => 1 [合作伙伴代码] => 2121 [州代码] => 233 ) ) ) ) [1] => 数组 ( [文件] => C:''wamp''www'soap''phpclient.php [line] => 10 [function] => getIMIPremium [class] => SoapClient [type] => -> [args] => Array ( [0] => Array ( [imiPolicy] => Array ( [到期日期] => 23-09-2013 [imiInsured] => Array ( [item] => 数组 ( [项目] => 数组 ( [年龄] => 23 [基本保险] => 33233 [封面愤怒类型] => 12 [出生日期] => 26-09-1986 [预先存在的疾病] => 否 ) ) [开始日期] => 12-09-2009 [无保险] => 1 [合作伙伴代码] => 2121 [状态代码] => 233 ) ) ) ) [上一页:异常:私有] => [错误字符串] => 错误版本 [错误代码] => 版本不匹配 [错误代码] => http://schemas.xmlsoap.org/soap/envelope/[xdebug_message] => ( ! )SoapFault: C:''wamp''www'soap''phpclient.php in line 1 #TimeMemoryFunctionLocation 0.0009674576{main}( ).中的错误版本''phpclient.php:020.0704702744SoapClient->getIMIPremium( )..''phpclient.php:10 )

客户端 php 代码中是否有可能出现错误?我已经尝试过NuSoap,但它也生成错误"调用错误:响应不是文本/xml类型:application/wsdl+xmlHTTP/1.1 200 OK 日期:星期二,17 Sep 2013 16:55:39 GMT 服务器:Apache/2.2.22 (Win64) PHP/5.3.13 最后修改日期:星期二, 17 九月 2013 13:18:39 GMT ETag: "a0000000a818c-12e9-4e69428b54054" 接受范围: 字节 内容长度: 4841 连接: 关闭 内容类型: 应用程序/wsdl+xml "。

你知道有什么解决方法吗?

PHP代码 :

<?php
try{

$client = new SoapClient("http://mysite.com/nsoap/IMIPremiumWebService.wsdl");

$args= array("imiPolicy" => array("expiryDate" => "23-09-2013", "imiInsured" =>array("item" => array("item" => array("age"=>'23', "basicSumInsured"=>'33233', "coverRageType"=>'12',"dateOfBirth"=>'26-09-1986',"preExistingDisease" => 'no'))), "inceptionDate"=>"12-09-2009" ,"noOfInsured"=>'1',"partnerCode" => '2121', "stateCode" => '233'));
$something =  $client->getIMIPremium($args);
echo $client->responseData;

print_r($something);
}
catch (Exception $e)
{
    echo "*****************";
    print_r($e);
}
?>

你可以在这里找到wsdl(在我的与NuSOAP相关的问题中:WSDL 客户端不工作

稍微

谷歌搜索一下该特定的错误消息,就会发现它可能与 Soap 版本 1.2 中的 Soap 服务器应答有关,而 PHP 中的默认设置是 Soap 版本 1.1。

尝试将选项数组添加到 SoapClient 中,并将 array('soap_version'=> SOAP_1_2) 作为第二个参数(有关详细信息,请参阅 http://de1.php.net/manual/en/soapclient.soapclient.php)。