Использование Ruby с Charles Proxy через экспорт http_proxy на Mac

У меня есть простой скрипт Ruby (Ruby 2.0), который я хочу запустить на Mac OSX Yosemite, и я хочу проксировать сетевые запросы через Charles Proxy.

require 'json'
require 'net/http'
require 'net/https'

class Charles

def go

    uri = URI.parse('http://example.com')
    req = Net::HTTP::Get.new(uri.request_uri)
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = false
    res = http.request req

    puts res
    puts res.body

end

end

net = Charles.new
net.go

Если я выполняю этот скрипт, все в порядке, но я не вижу запроса в Чарльзе.

Как только я устанавливаю http-прокси через командную строку, ошибки скрипта:

export http_proxy=192.168.1.108:8888

/Users/hug/.rvm/rubies/ruby-2.0.0-p643/lib/ruby/2.0.0/uri/common.rb:176:in `split': неверный URI (это не URI?): 192.168. 1.108:8888 (URI::InvalidURIError)

После я

unset http_proxy

он снова работает. я тоже пробовал

export http_proxy=locahost:8888
export http_proxy=machinename.local:8888

Все эти способы установки прокси отлично работают для curl, но не для Ruby.

Что я делаю не так?


person Brynjar    schedule 02.12.2015    source источник


Ответы (1)


Переменная среды http_proxy также должна включать протокол. Curl кажется ленивым в этом смысле.

Попробуйте настроить прокси через

export http_proxy="http://localhost:8888"

person iltempo    schedule 02.12.2015
comment
Так просто, но я не догадался попробовать этот вариант! - person Brynjar; 02.12.2015