Twilio NodeJS - 通过代理请求

时间:2018-04-02 19:53:22

标签: node.js proxy twilio

如何在使用Twilio github库时指定代理?

作为一种解决方法,我可以手动向twilio发出请求。或者,我可以修改我的本地版本的 ./ lib / RequestClient.js

var options = {
    timeout: opts.timeout || 30000,
    proxy: 'http://myproxy.com:8080', // <- My proxy override
    followRedirect: opts.allowRedirects || false,
    url: opts.uri,
    method: opts.method,
    headers: opts.headers,
    forever: opts.forever === false ? false : true,
  };

查看twilio代码 - 该请求不是在寻找代理选项。如果Twilio在初始化期间修改了他们的RequestClient以接受代理选项,那就太好了。

谢谢!

1 个答案:

答案 0 :(得分:0)

Hey Twilio开发者传播者在这里。

是的,帮助程序库目前不直接支持代理。你可以做一些选择来解决这个问题。

选项1: 帮助程序库正在使用引擎盖下的request模块。除了proxy选项之外,还有另一种使用环境变量指定代理的方法。如果twilio是您的代码库中唯一使用request的内容,则可能是一个选项。您可以在request文档中详细了解相关内容:https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables

选项2: 帮助程序库允许您指定自己的RequestClient。它必须实现与帮助程序库的lib/base/RequestClient.js中的RequestClient相同的接口。最简单的方法是复制该文件,修改options变量以获得proxy选项,然后将其传递给Twilio构造函数:

const twilio = require('twilio');
const MyRequestClient = require('./path/to/your/MyRequestClient');

const client = twilio(
    'account_sid',
    'auth_token', 
    { httpClient: new MyRequestClient() })

// do your requests

我希望这会有所帮助。我还确保创建GitHub issue以确保将其作为选项长期添加。