NodeJS Soap请求/响应

时间:2016-12-27 08:55:18

标签: php node.js soap node-soap

NodeJS中的请求或解析响应不正确。但它适用于PHP。

以下是适用的PHP版本:

ini_set("soap.wsdl_cache_enabled", "0");

try {
    $oWsdl = @new \SoapClient(
        "https://xml.proveid.experian.com/IDSearch.cfc?wsdl",
        array(
            "exceptions" => 1,
            "timeout" => 0,
            "connect_timeout" => 0,
            "ssl_verify_peer" => false,
        )
    );
    $sAnswer = $oWsdl->Search(getXML());
}
catch (\SoapFault $e)
{
    throw $e;
}

print_r($sAnswer);


// ******************************************
function getXML() {
    return <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<Search>
    <Authentication>
        <Username>test_acc</Username>
        <Password>test_pw</Password>
    </Authentication>
    <CountryCode>GBR</CountryCode>
    <Person>
        <Name>
            <Forename>Wexhuy</Forename>
            <Surname>Cutfamjungofguc</Surname>
        </Name>
        <Gender></Gender>
        <DateOfBirth>1987-02-17</DateOfBirth>
    </Person>
    <Addresses>
        <Address Current="1">
            <Premise>random</Premise>
            <Postcode>BD634HP</Postcode>
            <CountryCode>GBR</CountryCode>
        </Address>
    </Addresses>
    <SearchOptions>
        <ProductCode>ProveID_AML</ProductCode>
        <DecisionCode>Ssdz</DecisionCode>
    </SearchOptions>
</Search>
XML;
}

这是使用node-soap lib的NodeJS版本。我还尝试使用xml2js库来解析响应,但没有成功。

soap.createClient(url , function(err, client) {
    client.search(xml, function(err, result) {
        if(err) {
            console.log("Error:", err.message); // Error: Cannot parse response    
        }
        console.log(result); // {}
    });
});

如何修复NodeJS版本?

可能需要一些标题或信封吗?

0 个答案:

没有答案