Nodejs調用WebService的示例代碼
這兩天一直在試著編寫純靜態(tài)頁面的js去調用由Java編寫的WebService,一直無法成功(主要工期比較趕,待后面比較閑的時候再來研究,看能不能寫一個純靜態(tài)頁面的js去調用WebService的),最后 沒有辦法只有改成Node JS去調用WebService。本想在網(wǎng)上找一些資料,發(fā)現(xiàn)沒有讓人滿意的,最后還是只能去參考官網(wǎng)的文檔,結合自己的需求做了一個Client端的程序,希望對大家有所幫助。
首先來做前期準備工作,假設你已經(jīng)安裝了nodejs,因為我沒有通過工程來設置,直接通過命令來實現(xiàn),所以下面先來安裝需要用的nodejs的包(如果通過工程的方式,可以配置package.json來實現(xiàn))
命令如下
npm install soap npm install sinon npm install request npm install debug npm install lodash npm install soap npm install concat-stream npm install optional npm install ejs npm install xml-crypto npm install node-uuid npm install sax npm install strip-bom npm install selectn npm install mocha –save-dev
安裝完這一部分的東西后就可以開始寫代碼了。文件名myServer.js。
代碼如下
var wsdlOptions ={ "overrdeRootElement":{ "namespace":"xmlns:tns", "xmlnsAttributes":[{ "name":"xmlns:ns", "value":"http://www.yourCompany.com" }] } }; var url='http://www.dbjr.com.cn/WebService/WebService?wsdl'; var soap=require('soap'); var args={'Param1':'value1','Param2':'value2'}; soap.createClient(url,wsdlOptions,function(err,client){ if(err!==null){ console.log(err); } // client.setSOAPAction(url); client.MyService(args,function(err,result){ if(err!==null){ console.log(err); } console.log (result); }); });
通過命令
node myServer.js
進行測試,得到的結果會根據(jù)服務端返回的數(shù)據(jù),我這里得到的是一個JSON數(shù)據(jù).(會根據(jù)服務端返回的數(shù)據(jù),我這里得到的是一個JSON數(shù)據(jù)。
注意:http://www.dbjr.com.cn替換成自己的服務的命名空間,var url='http://www.dbjr.com.cn/WebService/WebService?wsdl';替換成自己的服務地址,args參數(shù)最好不要用new Array()來創(chuàng)建,采用JSON數(shù)據(jù),參數(shù)數(shù)量更具實際需要進行設置。最后,如果要在瀏覽器上運行,還要解決安全性問題才能正常使用。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
基于nodejs+express4.X實現(xiàn)文件下載的實例代碼
本篇文章主要介紹了詳解nodejs+express4.X的文件下載的實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07Nodejs Buffer的使用及Stream流和事件機制詳解
這篇文章主要為大家介紹了Nodejs Buffer的使用及Stream流和事件機制詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10Webpack 實現(xiàn) Node.js 代碼熱替換
Webpack有一個很實用的功能叫做熱替換(Hot-replace),尤其是結合React Hot Loader插件,開發(fā)過程中都不需要刷新瀏覽器,任何前端代碼的更改都會實時的在瀏覽器中表現(xiàn)出來。2015-10-10npm報錯:無法將"npm"項識別為cmdlet、函數(shù)、腳本文件或可運行程序的名稱
這篇文章主要給大家介紹了關于npm報錯:無法將"npm"項識別為cmdlet、函數(shù)、腳本文件或可運行程序的名稱的相關資料,文中將解決的辦法介紹的非常詳細,需要的朋友可以參考下2023-02-02