使用 node-soap 客户端通过代理调用 SOAP API
Calling SOAP API through proxy with node-soap client
我正在使用 node-soap 模块并且它工作正常,除非我在代理后面工作。我无法设法找到设置该代理的方法,因此我无法请求 API。
soap.createClient(url, function(err, client) {
client.MyFunction(args, function(err, result) {
console.log(result);
});
});
它写在文档中:
The options argument allows you to customize the client with the following properties:
request: to override the request module.
httpClient: to provide your own http client that implements request(rurl, data, callback, exheaders, exoptions).
是这样吗?
嗯,看了代码后,我发现你可以将你的代理声明为环境变量。
process.env.http_proxy = 'http://proxyhost:proxyport';
这有效!
在 soap.createClient()
选项中,将 'request'
设置为使用 request.defaults()
设置 'proxy'
的请求对象。
let request = require('request');
let request_with_defaults = request.defaults({'proxy': PROXY_URL, 'timeout': 5000, 'connection': 'keep-alive'});
let soap_client_options = {'request': request_with_defaults};
soap.createClient(WSDL_URL, soap_client_options, function(err, client) {
我正在使用 node-soap 模块并且它工作正常,除非我在代理后面工作。我无法设法找到设置该代理的方法,因此我无法请求 API。
soap.createClient(url, function(err, client) {
client.MyFunction(args, function(err, result) {
console.log(result);
});
});
它写在文档中:
The options argument allows you to customize the client with the following properties:
request: to override the request module.
httpClient: to provide your own http client that implements request(rurl, data, callback, exheaders, exoptions).
是这样吗?
嗯,看了代码后,我发现你可以将你的代理声明为环境变量。
process.env.http_proxy = 'http://proxyhost:proxyport';
这有效!
在 soap.createClient()
选项中,将 'request'
设置为使用 request.defaults()
设置 'proxy'
的请求对象。
let request = require('request');
let request_with_defaults = request.defaults({'proxy': PROXY_URL, 'timeout': 5000, 'connection': 'keep-alive'});
let soap_client_options = {'request': request_with_defaults};
soap.createClient(WSDL_URL, soap_client_options, function(err, client) {