繁体   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