[英]Response from soap header
即使我对php soap概念非常陌生,我仍然编写了一个程序来使用SoapClient与Web服务器进行通信。
这是我的wsdl链接: https : //es.adpolice.gov.ae/TrafficInsurance/TrafficInsuranceServicesNew.asmx? wsdl
服务名称:CreateVehicleInsurancePolicy链接: https ://es.adpolice.gov.ae/TrafficInsurance/TrafficInsuranceServicesNew.asmx ? op = CreateVehicleInsurancePolicy
我将程序托管在ssl认证的主机中,运行该程序时会在soap body response( lngSerial )中生成响应。我想从soap header( SoapHeaderOut )打印响应值。
那是intResponseCode,strArMsg,strEnMsg 。
请指导我。下面我提供了我正在使用的脚本。
<?php
ini_set("soap.wsdl_cache_enabled", "0");
ini_set("soap.wsdl_cache_ttl", "0");
class SOAPStruct
{
function __construct($user, $pass)
{
$this->userName = $user;
$this->Password = $pass;
}
}
$service = new SoapClient("https://es.adpolice.gov.ae/TrafficInsurance/TrafficInsuranceServicesNew.asmx?wsdl");
$auth = new SOAPStruct('username','password');
$header = new SoapHeader("http://adpolice.gov.ae/TrafficInsurance/TrafficInsuranceServices.asmx","SoapHeaderIn",$auth,true);
$service->__setSoapHeaders($header);
$param = array('lngInsuranceCompanyCode'=> '1','intInsuranceKindCode'=>'1','lngTcf'=>'3070858641','strPolicyNo'=>'1055385883','dtExpiryDate'=>'2016-04-30T00:00:00','dtStartDate'=>'2015-03-31T00:00:00','strChassisNo'=>'6T1BE42RG465465','strRemarks'=>'demo','strUserCreated'=>'demo');
$response = $service->CreateVehicleInsurancePolicy($param)->CreateVehicleInsurancePolicyResult;
foreach ($response as $record) {
print_r($record);
print_r("<br>");
}
?>
根据PHP文档,您应该能够通过使用低级API而不是WSDL提供的魔术方法来获得SoapHeader响应对象。 在你的情况下
$response = $service->__soapCall("CreateVehicleInsurancePolicy", $param, null, $headers, $response_headers);
哪个应将所需的对象存储到$ response_headers变量中。
旧响应:(与响应的实际HTTP标头有关)如果使用如下所示的跟踪集实例化SoapClient:
$service = new SoapClient("https://es.adpolice.gov.ae/TrafficInsurance/TrafficInsuranceServicesNew.asmx?wsdl", array("trace" => 1))
您应该能够使用SoapClient :: __ getLastResponseHeaders获得Header响应
$response_headers = $service->__getLastResponseHeaders();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.