如何使用代理集调用Watson API

时间:2017-06-28 18:01:23

标签: node.js proxy ibm-watson

我正在尝试调用一些API,目前我的服务器请求防火墙,我需要设置代理才能通过,因为with proxy工作正常,出于安全考虑,公司无法为我发布防火墙

总结:如何调用此API将我的代理服务器与服务器中的代码一起设置为使用代理的所有请求?

我尝试使用express-http-proxy和http-proxy,然后尝试:

require('dotenv').config({silent: true});

var httpProxy = require('http-proxy');

var server = require('./app', httpProxy.createServer(function (req, res, proxy) {
  var buffer = httpProxy.buffer(req);

  proxy.proxyRequest(req, res, {
    host: 'pxdproxy.com',
    port: 8080,
    buffer: buffer
  });
});


var port = process.env.PORT || process.env.VCAP_APP_PORT || 443;

server.listen(port, function() {
  // eslint-disable-next-line
  console.log('Server running on port: %d', port);
});

我对API的要求:

var conversation = watson.conversation({
    url: 'https://gateway.watsonplatform.net/conversation/api',
    username: 'xxxxxxxxxxxxxxxxxxxxx',
    password: 'xxxxxxxxxxxxxxxxxxxxxxx',
    version_date: '2017-12-03',
    version: 'v1',  
});

我需要使用代理集调用Conversation API。

1 个答案:

答案 0 :(得分:1)

用于从Node.JS调用Watson API的SDK使用request库。

为了使用代理来调用服务,您只需要定义一个名为HTTPS_PROXY的环境变量。

根据您的示例,您将使用:

HTTPS_PROXY=pxdproxy.com:8080

更多信息here