Rid*_*ils 6 ruby proxy heroku httparty
我在heroku上试图访问一个API,要求我的应用程序ip被列入白名单.所以,我使用heroku附加的proximo来获取api白名单的主机/ ip.
我设置为使用HTTParty测试连接的快速测试失败了.
class FakeRequest
include HTTParty
http_proxy 'XX.XXX.XX.XX', 80, 'user', 'pass'
def set_defaults
{:api_key=>"BLARG_BLARG",
:login_name=>"user",
:method => "do_something",
:response_format => "json",
:v => "1.0",
:login_password=>"pass"}
end
def make_post
HTTParty.post "https://test.com", :query => set_defaults
end
end
Run Code Online (Sandbox Code Playgroud)
这样:req = FakeRequest.new req.make_post
从api返回一条错误消息,抱怨源IP未列入白名单.我查看了源IP,它没有使用代理.如何使用代理而不是我的ISP的IP来发布HTTParty帖子.
这是我为此构建的模块:
module ProximoParty
PROXIMO = URI.parse(ENV['PROXIMO_URL'])
def self.included(base)
base.send(:include, HTTParty)
base.http_proxy(PROXIMO.host, 80, PROXIMO.user, PROXIMO.password)
end
end
Run Code Online (Sandbox Code Playgroud)
这使用 PROXIMO URL,因为当您安装插件时,它会添加到您的 heroku 应用程序中。因此,您可以将此文件放入您的应用程序和include ProximoPartyFakeRequest 类中,而不是 HTTParty 中,它应该“正常工作”。
看起来我的代码正在做与您的代码正在做的事情相同的事情,所以我猜测您可能没有手动正确地为 proximo 传递凭据。
我遇到了类似的问题,但它对我来说并没有立即发挥作用。我相信问题是我被绊倒了,proximo URL 中似乎有一个“proxy:”协议,但这只是 URL 的用户名部分。
无论如何,这可能有帮助,也可能没有帮助,但如果有帮助,请告诉我!