簡體   English   中英

我們如何使用本地驅動器中的 .wsdl 文件發送 soap 請求?

[英]How can we use .wsdl file from local drive to send soap request?

我是肥皂網絡服務的新手。 我有本地 wsdl 文件。 出於安全原因,我要連接到的公司...com?wsdl url 已關閉。 我需要到達當地。 當我使用 soap ui 工具並發送請求時,返回了成功的結果。 但是當我在 nodejs 的 soap 包的幫助下發送請求時,結果被返回。 這些方法出現在 client.describe 方法中。 但我無法訪問這些方法。 請幫我在這里輸入圖片描述

您好,歡迎來到 StackOverflow。

WSDL(網絡服務描述語言)是一種用於描述網絡服務的 XML 符號。 WSDL 定義告訴客戶端如何編寫 Web 服務請求並描述 Web 服務提供者提供的接口。

通常,WSDL 定義分為單獨的部分,這些部分指定 Web 服務的邏輯接口和物理細節。 物理詳細信息包括端點信息(例如 HTTP 端口號)和綁定信息,綁定信息指定如何表示 SOAP 負載以及使用哪種傳輸方式。

由於公司出於安全原因關閉了端點,因此我假設您已成功將其更改為.wsdl文件中的本地 URI。

使用 node.js,您應該能夠在有或沒有特定節點包的情況下查詢它,因為可以使用 HTTP POST、一些額外的標頭和 XML SOAP 信封查詢 soap 服務。 否則這里是一個示例,您可以使用簡單的 SOAP 請求進行調整:

const soapRequest = require('easy-soap-request');
const fs = require('fs');`enter code here`

// example data
const url = 'http://your-local-ip:80/test';
const sampleHeaders = {
  'user-agent': 'sampleTest',
  'Content-Type': 'text/xml;charset=UTF-8',
  'soapAction': 'http://your-local-ip:80/test/yourservice.wsdl#Test',
};
const xml = fs.readFileSync('./someEnvelope.xml', 'utf-8');

// usage of module
(async () => {
  const { response } = await soapRequest({ url: url, headers: sampleHeaders, xml: xml, timeout: 1000 }); // Optional timeout parameter(milliseconds)
  const { headers, body, statusCode } = response;
  console.log(headers);
  console.log(body);
  console.log(statusCode);
})();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM