这是我第一次发帖,如果我不是很清楚,请原谅我。我还要说明我对php和Web服务的了解甚少。
我遇到的问题是:
SOAP请求由外部源(客户端)生成,然后发送到我的php SOAP服务器。当服务器收到请求时,它根本就不正确。数据包嗅探器显示请求在到达运行php服务器的计算机时看起来正确。但是,出于某种原因,只要soap服务器收到请求,就会搞砸了。
真正奇怪的是,就在一周前,这段代码运行良好。自那时以来没有任何变化。这已在3台不同的机器上尝试过,其中一台机器运行不同版本的php(并处于不同的状态!)。其中一台机器在经过一些成功的测试后不久就关闭了,然后在这个问题出现之后立即打开了。
以下是客户发送的请求示例:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CoverageRequest xmlns="http://www.iicmva.com/CoverageVerification/">
<RequestorInformation>
<Organization>
<Name>NVDMV</Name>
</Organization>
<ReasonDetails>
<ReasonCode>BI</ReasonCode>
<TrackingNumber>NVDMV-2011-05-12 10:36:52:286678</TrackingNumber>
</ReasonDetails>
</RequestorInformation>
<Detail>
<PolicyInformation>
<OrganizationDetails>
<NAIC>26654</NAIC>
</OrganizationDetails>
<PolicyDetails>
<VerificationDate>2011-05 12T00:00:00</VerificationDate>
<UniqueKey>1234567890123456789</UniqueKey>
<PolicyState>NV</PolicyState>
</PolicyDetails>
</PolicyInformation>
<InsuredInformation>
<PrimaryNameInformation>
<ParsedName>
<GivenName>FIRSTNAME</GivenName>
<Surname>LASTNAME</Surname>
</ParsedName>
<Name>LASTNAME,FIRSTNAME</Name>
<DriversLicense>NOLICENSE</DriversLicense>
<FEIN>FEIN</FEIN>
</PrimaryNameInformation>
<Address>
<StreetAddress>12345</StreetAddress>
</Address>
</InsuredInformation>
<VehicleInformation>
<VehicleDetails>
<VIN>VIN1234567</VIN>
<Make>MAKE</Make>
<Model>MODEL</Model>
<Year>2000</Year>
</VehicleDetails>
</VehicleInformation>
</Detail>
</CoverageRequest>
</soap:Body>
</soap:Envelope>
以下是soap服务器获取的示例:
<?xml version="1.0" encoding="UTF-8"?><CoverageRequest><stdClass>
<Individual>
<ParsedName>
<Prefix />
<GivenName />
<MiddleName />
<Surname />
<Suffix />
</ParsedName>
</Individual>
<Organization>
<Name />
</Organization>
<ReasonDetails>
<ReasonCode />
<TrackingNumber />
</ReasonDetails>
</stdClass></CoverageRequest>
以下是soap服务器的代码:
<?php
function CoverageRequest($pInput) {
error_reporting(~E_ALL);
require_once 'XML/Serializer.php';
$options = array(
XML_SERIALIZER_OPTION_INDENT => ' ',
XML_SERIALIZER_OPTION_LINEBREAKS => "\n",
XML_SERIALIZER_OPTION_DEFAULT_TAG => 'unnamedItem',
XML_SERIALIZER_OPTION_TYPEHINTS => false
);
$serializer = &new XML_Serializer($options);
$result = $serializer->serialize($pInput);
if( $result === true ) {
$xml = $serializer->getSerializedData();
}
// Surround all of the XML in a single tag
$xml = '<CoverageRequest>' . $xml;
$xml = $xml . '</CoverageRequest>';
// Insert the xml header at the beginning
$xml = '<?xml version="1.0" encoding="UTF-8"?>' . $xml;
$fp = fopen('SOAPRequest.txt', 'w');
fwrite($fp, $xml);
fclose($fp);
// Send the data to 4D's web service to be processed
$client = new SoapClient('http://67.214.247.59:8090/4DWSDL/');
$response = $client->VerifyInsurance($xml);
$fp = fopen('SOAPResponse.txt', 'w');
fwrite($fp, $response);
fclose($fp);
$xmlvar = new SoapVar($response, XSD_ANYXML);
return $xmlvar;
}
// Clean up the response to match the guidelines
function callback($buffer) {
$buffer = str_replace('<ns1:CoverageRequestResponse>', '', $buffer);
$buffer = str_replace('</ns1:CoverageRequestResponse>', '', $buffer);
$buffer = str_replace('SOAP-ENV', 'soap', $buffer);
return $buffer;
}
// turn off the wsdl cache
ini_set('soap.wsdl_cache_enabled', '0');
$server = new SoapServer(null, array('uri' => 'http://67.214.247.59/phpserver/verifyinsurance.wsdl'));
$server->addFunction('CoverageRequest');
ob_start('callback');
$server->handle();
ob_end_flush();
?>
这是wsdl:
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://www.iicmva.com/CoverageVerification/"
targetNamespace="http://www.iicmva.com/CoverageVerification/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
>
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://www.iicmva.com/CoverageVerification/">
<s:element name="CoverageRequest">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="RequestorInformation" type="tns:RequestorInformationModule" />
<s:element minOccurs="0" maxOccurs="1" name="Detail" type="tns:CoverageRequestDetail" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="RequestorInformationModule">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Individual" type="tns:IndividualBlock2" />
<s:element minOccurs="0" maxOccurs="1" name="Organization" type="tns:OrganizationBlock3" />
<s:element minOccurs="0" maxOccurs="1" name="ReasonDetails" type="tns:DocumentDetailBlock2" />
</s:sequence>
</s:complexType>
<s:complexType name="IndividualBlock2">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ParsedName" type="tns:IndividualNameComponent2" />
</s:sequence>
</s:complexType>
<s:complexType name="IndividualNameComponent2">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Prefix" type="tns:NameText2" />
<s:element minOccurs="0" maxOccurs="1" name="GivenName" type="tns:NameText4" />
<s:element minOccurs="0" maxOccurs="1" name="MiddleName" type="tns:NameText5" />
<s:element minOccurs="0" maxOccurs="unbounded" name="Surname" type="tns:NameText6" />
<s:element minOccurs="0" maxOccurs="1" name="Suffix" type="tns:NameText2" />
</s:sequence>
</s:complexType>
<s:complexType name="NameText2">
<s:simpleContent>
<s:extension base="s:string" />
</s:simpleContent>
</s:complexType>
<s:complexType name="NameText4">
<s:simpleContent>
<s:extension base="s:string" />
</s:simpleContent>
</s:complexType>
<s:complexType name="NameText5">
<s:simpleContent>
<s:extension base="s:string" />
</s:simpleContent>
</s:complexType>
<s:complexType name="NameText6">
<s:simpleContent>
<s:extension base="s:string" />
</s:simpleContent>
</s:complexType>
<s:complexType name="OrganizationBlock3">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Name" type="tns:NameText1" />
</s:sequence>
</s:complexType>
<s:complexType name="NameText1">
<s:simpleContent>
<s:extension base="s:string" />
</s:simpleContent>
</s:complexType>
<s:complexType name="DocumentDetailBlock2">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ReasonCode" type="tns:ReasonCode1" />
<s:element minOccurs="0" maxOccurs="1" name="TrackingNumber" type="tns:ResourceIdentifier12" />
</s:sequence>
</s:complexType>
<s:complexType name="ReasonCode1">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="ListAgencyIdentifier" type="s:string" />
<s:attribute name="ListAgencyNameText" type="s:string" />
<s:attribute name="ListNameText" type="s:string" />
<s:attribute name="ListIdentifier" type="s:string" />
<s:attribute name="ListSchemeURI" type="s:string" />
<s:attribute name="ListURI" type="s:string" />
<s:attribute name="ListVersionIdentifier" type="s:string" />
<s:attribute name="NameText" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="ResourceIdentifier12">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="IdSchemeAgencyIdentifier" type="s:string" />
<s:attribute name="IdSchemeAgencyNameText" type="s:string" />
<s:attribute name="IdSchemeIdentifier" type="s:string" />
<s:attribute name="IdSchemeNameText" type="s:string" />
<s:attribute name="IdSchemeURI" type="s:string" />
<s:attribute name="IdSchemeVersionIdentifier" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="CoverageRequestDetail">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="PolicyInformation" type="tns:CoveragePolicyRequestModule" />
<s:element minOccurs="0" maxOccurs="1" name="InsuredInformation" type="tns:InsuredModule" />
<s:element minOccurs="0" maxOccurs="1" name="VehicleInformation" type="tns:RiskInformationModule" />
</s:sequence>
</s:complexType>
<s:complexType name="CoveragePolicyRequestModule">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="OrganizationDetails" type="tns:OrganizationBlock4" />
<s:element minOccurs="0" maxOccurs="1" name="PolicyDetails" type="tns:DocumentDetailBlock3" />
<s:element minOccurs="0" maxOccurs="1" name="BodilyInjuryCoverage" type="tns:AmountBlock1" />
<s:element minOccurs="0" maxOccurs="1" name="PropertyDamageCoverage" type="tns:AmountBlock1" />
</s:sequence>
</s:complexType>
<s:complexType name="OrganizationBlock4">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="NAIC" type="tns:PartyIdentifier18" />
</s:sequence>
</s:complexType>
<s:complexType name="PartyIdentifier18">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="IdSchemeAgencyIdentifier" type="s:string" />
<s:attribute name="IdSchemeAgencyNameText" type="s:string" />
<s:attribute name="IdSchemeIdentifier" type="s:string" />
<s:attribute name="IdSchemeNameText" type="s:string" />
<s:attribute name="IdSchemeURI" type="s:string" />
<s:attribute name="IdSchemeVersionIdentifier" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="DocumentDetailBlock3">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="VerificationDate" type="tns:DateTime1" />
<s:element minOccurs="0" maxOccurs="1" name="UniqueKey" type="tns:ResourceIdentifier12" />
<s:element minOccurs="0" maxOccurs="1" name="PolicyState" type="tns:ResourceIdentifier14" />
</s:sequence>
</s:complexType>
<s:complexType name="DateTime1">
<s:simpleContent>
<s:extension base="s:dateTime">
<s:attribute name="FormatText" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="ResourceIdentifier14">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="IdSchemeAgencyIdentifier" type="s:string" />
<s:attribute name="IdSchemeAgencyNameText" type="s:string" />
<s:attribute name="IdSchemeIdentifier" type="s:string" />
<s:attribute name="IdSchemeNameText" type="s:string" />
<s:attribute name="IdSchemeURI" type="s:string" />
<s:attribute name="IdSchemeVersionIdentifier" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="AmountBlock1">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="TypeofLimit" type="tns:ResourceCode9" />
<s:element minOccurs="0" maxOccurs="1" name="CoverageAmount" type="tns:Amount1" />
</s:sequence>
</s:complexType>
<s:complexType name="ResourceCode9">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="ListAgencyIdentifier" type="s:string" />
<s:attribute name="ListAgencyNameText" type="s:string" />
<s:attribute name="ListNameText" type="s:string" />
<s:attribute name="ListIdentifier" type="s:string" />
<s:attribute name="ListSchemeURI" type="s:string" />
<s:attribute name="ListURI" type="s:string" />
<s:attribute name="ListVersionIdentifier" type="s:string" />
<s:attribute name="NameText" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="Amount1">
<s:simpleContent>
<s:extension base="s:decimal">
<s:attribute name="currencyidentifier" type="s:string" />
<s:attribute name="CurrencyCodeListVersionIdentifier" type="s:string" />
<s:attribute name="CurrencyCodeList" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="InsuredModule">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="PrimaryNameInformation" type="tns:IndividualBlock3" />
<s:element minOccurs="0" maxOccurs="unbounded" name="AdditionalNamesInformation" type="tns:IndividualBlock3" />
<s:element minOccurs="0" maxOccurs="1" name="Address" type="tns:AddresslBlock1" />
</s:sequence>
</s:complexType>
<s:complexType name="IndividualBlock3">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ParsedName" type="tns:IndividualNameComponent2" />
<s:element minOccurs="0" maxOccurs="1" name="Name" type="tns:NameText1" />
<s:element minOccurs="0" maxOccurs="1" name="SocialSecurityNumber" type="tns:PartyIdentifier9" />
<s:element minOccurs="0" maxOccurs="1" name="DriversLicense" type="tns:PartyIdentifier8" />
<s:element minOccurs="0" maxOccurs="1" name="FEIN" type="tns:PartyIdentifier8" />
</s:sequence>
</s:complexType>
<s:complexType name="PartyIdentifier9">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="IdSchemeAgencyIdentifier" type="s:string" />
<s:attribute name="IdSchemeAgencyNameText" type="s:string" />
<s:attribute name="IdSchemeIdentifier" type="s:string" />
<s:attribute name="IdSchemeNameText" type="s:string" />
<s:attribute name="IdSchemeURI" type="s:string" />
<s:attribute name="IdSchemeVersionIdentifier" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="PartyIdentifier8">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="IdSchemeAgencyIdentifier" type="s:string" />
<s:attribute name="IdSchemeAgencyNameText" type="s:string" />
<s:attribute name="IdSchemeIdentifier" type="s:string" />
<s:attribute name="IdSchemeNameText" type="s:string" />
<s:attribute name="IdSchemeURI" type="s:string" />
<s:attribute name="IdSchemeVersionIdentifier" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="AddresslBlock1">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="StreetAddress" type="tns:LocationText9" />
<s:element minOccurs="0" maxOccurs="1" name="SubsiteAddress" type="tns:SubsiteAddressComponent1" />
<s:element minOccurs="0" maxOccurs="1" name="City" type="tns:LocationText1" />
<s:element minOccurs="0" maxOccurs="1" name="CountrySubdivision" type="tns:LocationCode2" />
<s:element minOccurs="0" maxOccurs="1" name="PostalCode" type="tns:LocationIdentifier1" />
<s:element minOccurs="0" maxOccurs="1" name="Country" type="tns:LocationCode3" />
</s:sequence>
</s:complexType>
<s:complexType name="LocationText9">
<s:simpleContent>
<s:extension base="s:string" />
</s:simpleContent>
</s:complexType>
<s:complexType name="SubsiteAddressComponent1">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Apartment" type="tns:LocationText2" />
<s:element minOccurs="0" maxOccurs="1" name="Building" type="tns:LocationText7" />
<s:element minOccurs="0" maxOccurs="1" name="Department" type="tns:LocationText7" />
<s:element minOccurs="0" maxOccurs="1" name="Floor" type="tns:LocationText2" />
<s:element minOccurs="0" maxOccurs="1" name="Room" type="tns:LocationText2" />
<s:element minOccurs="0" maxOccurs="1" name="Suite" type="tns:LocationText2" />
</s:sequence>
</s:complexType>
<s:complexType name="LocationText2">
<s:simpleContent>
<s:extension base="s:string" />
</s:simpleContent>
</s:complexType>
<s:complexType name="LocationText7">
<s:simpleContent>
<s:extension base="s:string" />
</s:simpleContent>
</s:complexType>
<s:complexType name="LocationText1">
<s:simpleContent>
<s:extension base="s:string" />
</s:simpleContent>
</s:complexType>
<s:complexType name="LocationCode2">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="ListAgencyIdentifier" type="s:string" />
<s:attribute name="ListAgencyNameText" type="s:string" />
<s:attribute name="ListNameText" type="s:string" />
<s:attribute name="ListIdentifier" type="s:string" />
<s:attribute name="ListSchemeURI" type="s:string" />
<s:attribute name="ListURI" type="s:string" />
<s:attribute name="ListVersionIdentifier" type="s:string" />
<s:attribute name="NameText" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="LocationIdentifier1">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="IdSchemeAgencyIdentifier" type="s:string" />
<s:attribute name="IdSchemeAgencyNameText" type="s:string" />
<s:attribute name="IdSchemeIdentifier" type="s:string" />
<s:attribute name="IdSchemeNameText" type="s:string" />
<s:attribute name="IdSchemeURI" type="s:string" />
<s:attribute name="IdSchemeVersionIdentifier" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="LocationCode3">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="ListAgencyIdentifier" type="s:string" />
<s:attribute name="ListAgencyNameText" type="s:string" />
<s:attribute name="ListNameText" type="s:string" />
<s:attribute name="ListIdentifier" type="s:string" />
<s:attribute name="ListSchemeURI" type="s:string" />
<s:attribute name="ListURI" type="s:string" />
<s:attribute name="ListVersionIdentifier" type="s:string" />
<s:attribute name="NameText" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="RiskInformationModule">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="VehicleDetails" type="tns:ResourceIdentificationBlock1" />
</s:sequence>
</s:complexType>
<s:complexType name="ResourceIdentificationBlock1">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="VIN" type="tns:ResourceIdentifier11" />
<s:element minOccurs="0" maxOccurs="1" name="Make" type="tns:ResourceIdentifier12" />
<s:element minOccurs="0" maxOccurs="1" name="Model" type="tns:ResourceIdentifier12" />
<s:element minOccurs="0" maxOccurs="1" name="Year" type="tns:DateTimeText2" />
</s:sequence>
</s:complexType>
<s:complexType name="ResourceIdentifier11">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="IdSchemeAgencyIdentifier" type="s:string" />
<s:attribute name="IdSchemeAgencyNameText" type="s:string" />
<s:attribute name="IdSchemeIdentifier" type="s:string" />
<s:attribute name="IdSchemeNameText" type="s:string" />
<s:attribute name="IdSchemeURI" type="s:string" />
<s:attribute name="IdSchemeVersionIdentifier" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="DateTimeText2">
<s:simpleContent>
<s:extension base="s:string" />
</s:simpleContent>
</s:complexType>
<s:element name="CoverageResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="Detail" type="tns:CoverageResponseDetail" />
<s:element minOccurs="0" maxOccurs="1" name="RequestorInformation" type="tns:RequestorInformationModule" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="CoverageResponseDetail">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="PolicyInformation" type="tns:CoveragePolicyResponseModule" />
<s:element minOccurs="0" maxOccurs="1" name="InsuredInformation" type="tns:InsuredModule" />
<s:element minOccurs="0" maxOccurs="1" name="VehicleInformation" type="tns:RiskInformationModule" />
</s:sequence>
</s:complexType>
<s:complexType name="CoveragePolicyResponseModule">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="CoverageStatus" type="tns:StatusInformationBlock4" />
<s:element minOccurs="0" maxOccurs="1" name="OrganizationDetails" type="tns:OrganizationBlock4" />
<s:element minOccurs="0" maxOccurs="1" name="PolicyDetails" type="tns:DocumentDetailBlock3" />
<s:element minOccurs="0" maxOccurs="1" name="BodilyInjuryCoverage" type="tns:AmountBlock1" />
<s:element minOccurs="0" maxOccurs="1" name="PropertyDamageCoverage" type="tns:AmountBlock1" />
</s:sequence>
</s:complexType>
<s:complexType name="StatusInformationBlock4">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ResponseDetails" type="tns:ParsedStatusComponent3" />
</s:sequence>
</s:complexType>
<s:complexType name="ParsedStatusComponent3">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ResponseCode" type="tns:EventCode7" />
<s:element minOccurs="0" maxOccurs="unbounded" name="UnconfirmedReasonCode" type="tns:EventCode8" />
</s:sequence>
</s:complexType>
<s:complexType name="EventCode7">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="ListAgencyIdentifier" type="s:string" />
<s:attribute name="ListAgencyNameText" type="s:string" />
<s:attribute name="ListNameText" type="s:string" />
<s:attribute name="ListIdentifier" type="s:string" />
<s:attribute name="ListSchemeURI" type="s:string" />
<s:attribute name="ListURI" type="s:string" />
<s:attribute name="ListVersionIdentifier" type="s:string" />
<s:attribute name="NameText" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="EventCode8">
<s:simpleContent>
<s:extension base="s:token">
<s:attribute name="ListAgencyIdentifier" type="s:string" />
<s:attribute name="ListAgencyNameText" type="s:string" />
<s:attribute name="ListNameText" type="s:string" />
<s:attribute name="ListIdentifier" type="s:string" />
<s:attribute name="ListSchemeURI" type="s:string" />
<s:attribute name="ListURI" type="s:string" />
<s:attribute name="ListVersionIdentifier" type="s:string" />
<s:attribute name="NameText" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
</s:schema>
</wsdl:types>
<wsdl:message name="VerifyInsuranceSoapIn">
<wsdl:part name="parameters" element="tns:CoverageRequest" />
</wsdl:message>
<wsdl:message name="VerifyInsuranceSoapOut">
<wsdl:part name="parameters" element="tns:CoverageResponse" />
</wsdl:message>
<wsdl:portType name="VerifyServiceSoap">
<wsdl:operation name="CoverageRequest">
<wsdl:input message="tns:VerifyInsuranceSoapIn" />
<wsdl:output message="tns:VerifyInsuranceSoapOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="VerifyServiceSoap" type="tns:VerifyServiceSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<wsdl:operation name="CoverageRequest">
<soap:operation soapAction="urn:gnwSoap#CoverageRequest" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="gnwSoap">
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/" />
<wsdl:port name="VerifyServiceSoap" binding="tns:VerifyServiceSoap">
<soap:address location="http://67.214.247.59/phpserver/server.php" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
有谁可以告诉我为什么响应缺少CoverageRequest部分以及为什么它突然包含在stdClass标签中?
谢谢!
答案 0 :(得分:1)
我不能回复你的反应,但我可以解释一下stdClass。
stdClass类型的对象是一个简单的包装器。当您将数组战场转换为对象时,您会得到一个类型为stdClass的类,例如:
(object)array('keyname' => 'value')
如果你做了这个的var_dump(),你会得到:
object(stdClass)#1 (1) {
["keyname"]=>
string(5) "value"
}
每种语言中的所有对象都从某个基础对象继承。我猜测在PHP中,它是stdClass。
(如果你喜欢这个答案,请投票给我。)
达斯汀
答案 1 :(得分:0)
CoverageRequest部分不是CoverageResponse类的一部分。 CoverageResponse类包含RequestorInformationModule的单个实例和CoverageResponseDetail对象的开放式数组。
我最好猜测stdClass出现的原因是由于在CoverageRequest和CoverageResponse元素中使用了未命名的complexTypes。