我是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服务找不到我的函数的任何问题。
您有什么想法吗?
最佳 克里斯
答案 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>