簡體   English   中英

Soap 調用和 __doRequest

[英]Soap Call and __doRequest

我正在調用網絡服務,但我無法得到答案。 我需要一個特殊的“信封”,所以我自己創建了一個並用它來調用 Web 服務。 這是我所做的一切:

$sobre  = '<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">';
$sobre .= '<Body><cargaTituloElectronicoRequest xmlns="http://ws.web.mec.sep.mx/schemas">';
$sobre .= '<nombreArchivo>' . $arch . '</nombreArchivo>';
$sobre .= '<archivoBase64>' .$xml . '</archivoBase64>';
$sobre .= '<autenticacion><usuario>' . $user . '</usuario><password>' . $pass . '</password></autenticacion>';
$sobre .= '</cargaTituloElectronicoRequest></Body></Envelope>';

$location_URL="https://metqa.siged.sep.gob.mx/met-ws/services/TitulosElectronicos.wsdl";
$action      ="https://metqa.siged.sep.gob.mx/met-ws/services/TitulosElectronicos.wsdl/cargaTituloElectronico";

$client = new SoapClient($location_URL, array('trace' => 1));
try{
        $resultado = $client->__doRequest($sobre, $location_URL, $action, 'SOAP_1_2', 0);
}catch (SoapFault $exception){
    var_dump(get_class($exception));
    var_dump($exception);
    $numLote = 0;
}
echo "REQUEST:\n" . htmlentities($client->__getLastRequest()) . "\n";

我沒有收到__getLastRequest() ,(不知道為什么)......和“ $action ”我已經只使用了該方法(' cargaTituloElectronico '),但它不起作用。
我不能使用$client->cargaTituloElectronico($params)因為服務器不接受自動生成的信封。
我真的很感激你幫助我。 提前致謝

此問題的解決方法:

聲明一個擴展 SoapClient 的新類,然后使用您自己的 evelope 重載 __doRequest 方法。

就是這樣。 有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM