2015-12-02 61 views
0

我有一個簡單的Ruby腳本(Ruby 2.0),我想在Mac OSX Yosemite上運行,並且我想通過Charles Proxy代理網絡請求。在Mac上使用Ruby與Charles代理通過導出http_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:在'分裂':壞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沒有任何作用。

我在做什麼錯?

回答

1

http_proxy環境變量也應包含該協議。 Curl在這個意義上似乎是懶惰的。

嘗試通過

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

+0

這麼簡單設置代理,但我沒有想到要嘗試改變! – Brynjar

相關問題