Фарадей - Могу ли я использовать исходящий прокси для запросов?

Мое приложение отлично работает на локальном хосте. Наша установка 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

Опять же, приложение отлично работает на локальном хосте. Нет исходящего подключения с настройкой Cloud Foundry компании. Я связал службу, так что все в порядке.

Что мне добавить, чтобы мои исходящие запросы проходили через прокси?


person slindsey3000    schedule 24.07.2015    source источник


Ответы (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

https://github.com/lostisland/faraday/issues/221

person Horacio    schedule 24.07.2015
comment
Спасибо. Я попробую это в понедельник утром, сэр! - person slindsey3000; 25.07.2015
comment
Как насчет имени пользователя и пароля, которые я должен использовать для прокси? Похоже, мне нужно войти в прокси с Фарадеем... См. второй блок кода в моем вопросе. - person slindsey3000; 26.07.2015
comment
посмотрите на rubydoc.info/github/lostisland/faraday/Faraday/Connection :proxy — URI, строка или хэш параметров HTTP-прокси (по умолчанию: переменная среды http_proxy). :uri — URI или строка :user — строка (необязательно) :password — строка (необязательно) - person Horacio; 26.07.2015