2015-07-24 1 views
0

Мое приложение отлично работает на локальном хосте. У нашей установки Cloud Foundry каким-то образом нет исходящей связи ... поэтому мне сказали, что я могу получить исходящую связь через прокси.Faraday - Могу ли я использовать исходящий прокси для запросов?

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

Мой код и как я должен подключиться.

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:6[email protected]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. Я связал службу, так что все в порядке.

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

ответ

2

Попробуйте

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:6[email protected]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

+0

Спасибо. Я попробую в понедельник утром сэр! – slindsey3000

+0

Как насчет имени пользователя и пароля, который я должен использовать для прокси? Похоже, мне нужно войти в прокси с Фарадеем ... Посмотрите на второй блок кода в моем вопросе. – slindsey3000

+1

смотрите http://www.rubydoc.info/github/lostisland/faraday/Faraday/Connection: proxy - URI, String или Hash из параметров HTTP-прокси (по умолчанию: переменная среды «http_proxy»). : uri - URI или String : пользователь - строка (необязательно) : пароль - строка (необязательно) –

 Смежные вопросы

  • Нет связанных вопросов^_^