【问题标题】:WebService banguat.gob.gt网络服务 banguat.gob.gt
【发布时间】:2015-03-30 07:00:42
【问题描述】:

提前感谢大家的帮助: 我有这个代码:
require_once('include/nusoap/lib/nusoap.php'); $soapclient = new soapclient('http://www.banguat.gob.gt/variables/ws/TipoCambio.asmx'); print_r( $soapclient->call( 'TipoCambioDia' ) );

并给我这个错误:致命错误:未捕获的 SoapFault 异常:[WSDL] SOAP-ERROR:解析 WSDL:无法从“http://www.banguat.gob.gt/variables/ws/TipoCambio.asmx”加载:C:\ 中标记 html 第 3 行中的数据过早结束xampp\htdocs\cambio_moneda\cambio_moneda.php:3 堆栈跟踪:#0 C:\xampp\htdocs\cambio_moneda\cambio_moneda.php(3) : SoapClient->SoapClient('http://www.bang...') #1 {main } 在第 3 行的 C:\xampp\htdocs\cambio_moneda\cambio_moneda.php 中抛出


然后我尝试使用此代码:

require_once('include/nusoap/lib/nusoap.php');
$soapclient = new soapclient();
$result = $soapclient->call( 'TipoCambioDia' , array(), "http://www.banguat.gob.gt/variables/ws/TipoCambio.asmx?op=TipoCambioDia", "http://www.banguat.gob.gt/variables/ws/TipoCambio.asmx?op=TipoCambioDia");  
print_r( $result );

我得到这个错误结果:致命错误:未捕获的 SoapFault 异常:[Client] SoapClient::SoapClient(): Invalid parameters in C:\xampp\htdocs\cambio_moneda\cambio_moneda.php:3 堆栈跟踪:#0 C :\xampp\htdocs\cambio_moneda\cambio_moneda.php(3) : SoapClient->SoapClient() #1 {main} 在第 3 行的 C:\xampp\htdocs\cambio_moneda\cambio_moneda.php 中抛出

我想要完成的是获取汇率加上日期并将其存储在变量中

谢谢大家

【问题讨论】:

    标签: php web-services soap wsdl xampp


    【解决方案1】:

    致命错误的原因是您用于创建 $soapclient 的 URL 不是 WSDL 文件。您需要更改它(注意 URL 中的 ?WSDL):

    $soapclient = new soapclient('http://www.banguat.gob.gt/variables/ws/TipoCambio.asmx?WSDL');
    

    接下来,要获得“TipoCambioDia”调用,需要直接使用,即:

    $soapclient->TipoCambioDia()
    

    这样做会在一个 stdObject 中返回:

    stdClass Object
    (
        [TipoCambioDiaResult] => stdClass Object
            (
                [CambioDolar] => stdClass Object
                    (
                        [VarDolar] => stdClass Object
                            (
                                [fecha] => 30/01/2015
                                [referencia] => 7.65538
                            )
    
                    )
    
                [TotalItems] => 1
            )
    
    )
    

    【讨论】:

    • 非常感谢@BrianTovar 工作完美 只是一个问题你怎么知道答案的?在其他情况下学习和做什么
    • 我打开了您用来实例化 $soapclient 的 URL,发现它正在提供 HTML。页面上有 WSDL 的链接。然后,我创建了一个简单的 PHP 脚本来使用 SOAP 服务。一开始直接使用$soapclient->call()会报错,所以我尝试直接调用那个端点。
    • 非常感谢@BrianTovar
    猜你喜欢
    • 1970-01-01
    • 2018-06-16
    • 2011-09-15
    • 2018-02-05
    • 2015-02-11
    • 2013-03-18
    • 2011-08-22
    • 2011-04-01
    • 1970-01-01
    相关资源
    最近更新 更多