Фарадей - Могу ли я использовать исходящий прокси для запросов?
Мое приложение отлично работает на localhost. Наша установка Cloud Foundry почему-то не имеет исходящего соединения... поэтому мне сказали, что я могу получить исходящее соединение через прокси.
Что мне нужно изменить в моих запросах Фарадея, чтобы использовать этот прокси?
Мой код и как я должен подключиться.
url = "#{@config[:host]}#{@config[:login_path]}"
c = Faraday.new(:url => url,
:request => { :timeout => 20, :open_timeout => 5},
:ssl => {:verify => false}) do |f|
f.request :url_encoded
f.adapter Faraday.default_adapter
f.response :json, :content_type => /\bjson$/
end
@resp = c.post(url, {username: username, password: password,
deviceId: @config[:device_id], deviceName: @config[:device_name], deviceType: @config[:device_type],
appId: @config[:app_id], scope: @config[:scope]})
Вот как я должен использовать прокси, который был настроен.
"Как только ваша служба будет связана, приложение будет иметь определение службы в формате JSON в VCAP_SERVICES
переменная среды вы можете увидеть формат, используя cf env x-explorer
команда. Ваше приложение должно будет проанализировать и настроить прокси с использованием указанных учетных данных.
Вот пример учетных данных. Вы можете использовать только uri
или отдельные параметры: host
, port
, username
а также password
"
uri: http://2abcf906-127e-495c-ae71-c69712862292:616e714aea0cfc81de67ad1445cf1448e38d6a8db345a452c0e1ddc830b8f132@f.services.g1.app.cloud.my_company.net:49349
host: f.services.g1.app.cloud.my_company.net
port: 49349
username: 2abcf906-127e-495c-ae71-c69712862292
password: 616e714aea0cfc81de67ad1445cf1448e38d6a8db345a452c0e1ddc830b8f132
Опять же, приложение отлично работает на localhost. Нет исходящей связи с настройкой компании Cloud Foundry. Я связал сервис, так что все в порядке.
Что мне добавить, чтобы мои исходящие запросы проходили через прокси?
1 ответ
Попробуй это
url = "#{@config[:host]}#{@config[:login_path]}"
c = Faraday.new(:url => url,
:request => { :timeout => 20, :open_timeout => 5},
:ssl => {:verify => false}) do |f|
f.request :url_encoded
f.adapter Faraday.default_adapter
f.response :json, :content_type => /\bjson$/url = "#{@config[:host]}#{@config[:login_path]}"
c = Faraday.new(:url => url,
:request => { :timeout => 20, :open_timeout => 5},
:ssl => {:verify => false}) do |f|
f.request :url_encoded
f.adapter Faraday.default_adapter
f.response :json, :content_type => /\bjson$/
f.proxy = "http://2abcf906-127e-495c-ae71-c69712862292:616e714aea0cfc81de67ad1445cf1448e38d6a8db345a452c0e1ddc830b8f132@f.services.g1.app.cloud.my_company.net:49349"
end
@resp = c.post(url, {username: username, password: password,
deviceId: @config[:device_id], deviceName: @config[:device_name], deviceType: @config[:device_type],
appId: @config[:app_id], scope: @config[:scope]})
end
@resp = c.post(url, {username: username, password: password,
deviceId: @config[:device_id], deviceName: @config[:device_name], deviceType: @config[:device_type],
appId: @config[:app_id], scope: @config[:scope]})
Здесь они говорят, как настроить прокси на выполнение запроса Фарадея
conn = Faraday.new(url, ssl: {verify:false}) do |conn|
# middleware ...
conn.adapter <adapter>
conn.proxy "http://localhost:80"
end