无法理解如何制作SOAP请求

时间:2017-08-30 12:36:45

标签: node.js xml web-services soap wsdl

我必须通过SOAP接口从Web服务下载一些东西。界面的文档相当稀疏,因此我无法理解如何从中请求。

This is the .wsdl specification.

This is the .xsd one.

这个想法是:

  1. 登录以获取会话密钥(我成功完成了这项工作)
  2. 使用会话密钥请求可用数据(我遇到问题)
  3. 使用此密钥请求特定数据
  4. 再次退出
  5. 我成功获取会话密钥并将其与数据库的请求一起使用。不幸的是,我只是得到HTTP 404作为响应,我不知道如何找到问题,因为404会在会话密钥错误时出现(例如“asdfg”)。

    这是我发送的XML:

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
    <div class="input-group">
      <select class="form-control"  aria-describedby="clear-addon">
      <option></option>
      <option>option1</option>
      <option>option2</option>
      </select>
      <span class="input-group-addon" id="clear_addon">&#10006;</span>
    </div>

    这是我正在使用的方法(我从中删除了一些丑陋,例如在方法中初始化的xmlDatabox):

        <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
        <soap:Body>
            <getDatabox xmlns="https://finanzonline.bmf.gv.at/fon/ws/databox">
                <tid>${tid}</tid>
                <benid>${benid}</benid>
                <id>${sessionToken}</id>
                <erltyp>${erltyp}</erltyp>
                <ts_zust_von>20-08-2017</ts_zust_von>
                <ts_zust_bis>25-08-2017</ts_zust_bis>   
            </getDatabox>
        </soap:Body>
    </soap:Envelope>
    

    现在一切都按照应该发送的方式发送。此外,方法和xml(重要的东西除外)相同的getDatabox()和loginRequest()(有效)。唯一的响应是HTTPS 404。

    如何找到错误?

    下次如何防止这种挫败感? (例如,通过立即知道应该使用哪些方法)

    编辑:我没有使用肥皂模块,因为我没有成功。

1 个答案:

答案 0 :(得分:0)

好..

我使用SoapUI来了解请求应该是什么样子,因为我对.wsld和.xsd格式一无所知。

SoapUI读取这两个文件并为其创建适当的xml,您只需填写即可。它还会显示您必须向其发送请求的网址,我最初也不知道。