如何确定可用的SOAP函数?

时间:2018-12-21 18:50:49

标签: php soap

我是SOAP的新手,正在尝试向https://nts.elwis.de/server/MessageServer.php?wsdl

发出第一个请求

我已经完成了一个帖子调用,将其发送到“ https://nts.elwis.de/server/MessageServer.php”处的SOAP端点。但它返回“过程'get_messages_query'不存在”。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:nts="http://www.ris.eu/nts/3.0">
   <soapenv:Header/>
   <soapenv:Body>
      <nts:get_messages_query>
      </nts:get_messages_query>
   </soapenv:Body>
</soapenv:Envelope>

如果我阅读了上面链接中的规范,那么我将找不到为什么SOAP服务找不到我的函数的任何问题。

您有什么想法吗?

最佳 克里斯

2 个答案:

答案 0 :(得分:1)

使用此简单的用PHP编写的脚本为您提供足够的信息。函数和类型列表将帮助您进行正确的SOAP调用。我不熟悉此SOAP服务,因此您需要传递正确的参数值。

<?php
// SOAP
$soap = new SoapClient("https://nts.elwis.de/server/MessageServer.php?wsdl");

// List functions
echo 'Functions: '.'</br>';
$functions = $soap->__getFunctions();
foreach($functions as $item) {
    echo $item.'</br>';
}
echo '</br>';

// List types
echo 'Types: '.'</br>';
$types = $soap->__getTypes();
foreach($types as $item) {
    echo $item.'</br>';
}
echo '</br>';

// Consume SOAP
$params = array(
    'message_type' => '', 
    'ids' => '',
    'validity_period' => array (
       'date_start' => date("Y-m-d"),
       'date_end' => date("Y-m-d")
    ),
    'dates_issue' => array (
        'date_start' => date("Y-m-d"),
        'date_end' => date("Y-m-d")
    ),
    'paging_request' => array(
         'offset' => 0,
         'limit' => 0,
         'total_count' => true
    )
);   
$responce = $soap->get_messages($params);
var_export($responce);
?>

答案 1 :(得分:1)

万一有人需要对端点https://nts.elwis.de/server/MessageServer.php的工作请求

这里是一个例子:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.ris.eu/nts.ms/1.0.3.0">
  <SOAP-ENV:Body>
    <ns1:get_messages_query>
        <ns1:message_type>WRM</ns1:message_type>
        <ns1:paging_request>
            <ns1:offset>0</ns1:offset>
            <ns1:limit>10</ns1:limit>
            <ns1:total_count>true</ns1:total_count>
        </ns1:paging_request>
    </ns1:get_messages_query>
</SOAP-ENV:Body>