解决此问题的最佳方法是更新我尝试连接的 SSL 端点,但我也没有能力。
我正在尝试访问一个几乎没有维护的应用程序的 SOAP 端点(这很痛苦),因此可能无法获得正确的 SSL 补丁。
它位于正在执行主动 SSL 重写的代理后面,也可能是导致错误的原因:
var request = require("request")
var soap = require("soap")
const fs = require('fs')
var specialRequest = request.defaults({
ca: fs.readFileSync("rewrite-example.pem")
})
var options = { request: specialRequest }
const WSDL = "https://SSL-rewrite.example?wsdl"
soap.createClient(WSDL, options, function(err, client) {
if(err) throw Error(err)
})
Run Code Online (Sandbox Code Playgroud)
错误:
Uncaught TypeError: req.then is not a function
at HttpClient.request (../node_modules/soap/lib/http.js:191:13)
at Object.open_wsdl (../node_modules/soap/lib/wsdl/index.js:1271:20)
at openWsdl (../node_modules/soap/lib/soap.js:70:16)
at ../node_modules/soap/lib/soap.js:48:13
at _requestWSDL (../node_modules/soap/lib/soap.js:76:9)
at Object.createClient (../node_modules/soap/lib/soap.js:94:5)
> Uncaught: Error: write EPROTO …Run Code Online (Sandbox Code Playgroud)