php – SOAP:HTTP错误请求

前端之家收集整理的这篇文章主要介绍了php – SOAP:HTTP错误请求前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
请求SOAP调用后我收到错误.

fault code: HTTP,fault string: Bad Request

这个形式很差的信息吗?

try{
    $client = new SoapClient("http://ip_add/something.asmx?WSDL",array("trace" => true,'exceptions' => 1));

    $params = new \SoapVar('<?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>
                    <RemittanceService xmlns="http://tempuri.org/">
                    <CreditTxnMessage xmlns="http://my_url">
                    <Corporate_UID xmlns="">66666</Corporate_UID>
                    <Mandate_Type xmlns="">P</Mandate_Type>
                    <MICR_No xsi:nil="true" xmlns="" />
                    <Instrument_No xsi:nil="true" xmlns="" />
                    <Remitter_Address1 xmlns="">285 enfiled pl</Remitter_Address1>
                    <Remitter_Address2 xmlns="">mississauga</Remitter_Address2>
                    <Remitter_Address3 xmlns="">16y2n4</Remitter_Address3>
                    <Remitter_Country xmlns="">Canada</Remitter_Country>
                    <Remitter_ZIP_Code xsi:nil="true" xmlns="" />
                    <Remitter_EmailID xsi:nil="true" xmlns="" />
                    <Remitter_Contact_No xmlns="" />
                    <Beneficiary_ZIP_Code xsi:nil="true" xmlns="" />
                    <Beneficiary_EmailID xsi:nil="true" xmlns="" />
                    <Beneficiary_Contact_No xmlns="" />
                    <Beneficiary_Bank_Name xmlns="">PNB</Beneficiary_Bank_Name>
                    </CreditTxnMessage>
                    </RemittanceService>
                </soap:Body>
                </soap:Envelope>',XSD_ANYXML);

    $result = $client->__soapCall('RemittanceService',array($params));
    highlight_string($client->__getLastRequest());
}
catch(SoapFault $fault){
    die("SOAP Fault:<br />fault code: {$fault->faultcode},fault string: {$fault->faultstring}");
}

我不知道这里有什么问题

堆栈跟踪

SoapFault exception: [HTTP] Bad Request in /var/www/mtes/public_html/application/controllers/bank_api_pnb.PHP:146
Stack trace:
#0 [internal function]: SoapClient->__doRequest('<?xml version="...','http://124.124....','http://tempuri....',1,0)
#1 /var/www/mtes/public_html/application/controllers/bank_api_pnb.PHP(146): SoapClient->__soapCall('RemittanceServi...',Array)
#2 [internal function]: Bank_api_pnb->test()
#3 /var/www/mtes/public_html/system/core/CodeIgniter.PHP(359): call_user_func_array(Array,Array)
#4 /var/www/mtes/public_html/index.PHP(220): require_once('/var/www/mtes/p...')
#5 {main}
SoapClient的全部要点是将调用转换为xml;所以你不应该手动这样做.改为:
try {
    $client = new SoapClient("http://ip_add/something.asmx?WSDL",'exceptions' => 1));

    $result = $client->RemittanceService(array(
            'CreditTxnMessage' => array(
                    'Corporate_UID' => 66666,'Mandate_Type' => 'P','MICR_No' => null,/* you get the idea */
                    'Beneficiary_Contact_No' => '','Beneficiary_Bank_Name' => 'PNB'
            )
    ));

    highlight_string($client->__getLastRequest());
}
catch(SoapFault $fault){
    die("SOAP Fault:<br />fault code: {$fault->faultcode},fault string: {$fault->faultstring}");
}

参数及其名称的确切格式将在WSDL中指定.

猜你在找的PHP相关文章