WebService banguat.gob.gt

0

Спасибо всем за помощь: у меня есть этот код:
require_once('include/nusoap/lib/nusoap.php'); $soapclient = new soapclient('http://www.banguat.gob.gt/variables/ws/TipoCambio.asmx'); print_r( $soapclient->call( 'TipoCambioDia' ) );

и дает мне эту ошибку: Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Разбор WSDL: Не удалось загрузить из " http://www.banguat.gob.gt/variables/ws/TipoCambio.asmx ": Преждевременный конец данных в теге html строка 3 в C:\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}, брошенный в C:\xampp\htdocs\cambio_moneda\cambio_moneda.php в строке 3


Затем я попытался с помощью этого кода:

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 );

И я получаю следующие результаты: Fatal error: Uncaught SoapFault exception: [Client] SoapClient :: SoapClient(): Недопустимые параметры в C:\xampp\htdocs\cambio_moneda\cambio_moneda.php: 3 Трассировка стека: # 0 C:\xampp\htdocs\cambio_moneda\cambio_moneda.php(3): SoapClient-> SoapClient() # 1 {main}, брошенный в C:\xampp\htdocs\cambio_moneda\cambio_moneda.php в строке 3

То, что я хочу выполнить, - это получить обменный курс плюс дату и сохранить его в переменной

Спасибо всем

Теги:
soap
web-services
xampp
wsdl

1 ответ

0
Лучший ответ

Причина фатальной ошибки заключается в том, что URL-адрес, который вы используете для создания $ soapclient, не является WSDL файлом. Вам нужно будет изменить его (обратите внимание на WSDL в URL-адресе):

$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
        )

)
  • 0
    Большое спасибо @BrianTovar работал отлично. Один вопрос, как вы узнали ответ? учиться и что делать в других ситуациях
  • 0
    Я открыл URL, который вы использовали для создания экземпляра вашего $ soapclient, и заметил, что он обслуживает HTML. На странице есть ссылка на WSDL. Затем я создал простой скрипт PHP, чтобы поиграть с сервисом SOAP. Сначала использование $ soapclient-> call () напрямую возвращало ошибку, поэтому я попытался вызвать эту конечную точку напрямую.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню