【发布时间】:2017-03-26 22:11:58
【问题描述】:
我使用的是 Rails 4.2.7。通过代理发送网络请求时如何设置“use_ssl”参数?我有这个
res1 = Net::HTTP.SOCKSProxy(TCPSocket::socks_server, TCPSocket::socks_port).start(uri.host, uri.port) do |http|
http.use_ssl = (uri.scheme == "https")
resp = http.get(uri, initheader = headers)
status = resp.code.to_i
if status == 302 || status == 301
redirect = resp['location']
end
content = resp.body
content_type = resp['content-type']
content_encoding = resp['content-encoding']
end
但是当我到达这一行时 - “http.use_ssl = (uri.scheme == "https”)” 我得到了异常
IOError: use_ssl value changed, but session already started
from /Users/davea/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/http.rb:758:in `use_ssl='
from /Users/davea/Documents/workspace/myproject/app/helpers/webpage_helper.rb:96:in `block in get_content'
from /Users/davea/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/http.rb:853:in `start'
from /Users/davea/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/http.rb:584:in `start'
from /Users/davea/Documents/workspace/myproject/app/helpers/webpage_helper.rb:94:in `get_content'
from /Users/davea/Documents/workspace/myproject/app/helpers/webpage_helper.rb:33:in `get_url'
from (irb):1
from /Users/davea/.rvm/gems/ruby-2.3.0/gems/railties-4.2.7.1/lib/rails/commands/console.rb:110:in `start'
from /Users/davea/.rvm/gems/ruby-2.3.0/gems/railties-4.2.7.1/lib/rails/commands/console.rb:9:in `start'
from /Users/davea/.rvm/gems/ruby-2.3.0/gems/railties-4.2.7.1/lib/rails/commands/commands_tasks.rb:68:in `console'
from /Users/davea/.rvm/gems/ruby-2.3.0/gems/railties-4.2.7.1/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
from /Users/davea/.rvm/gems/ruby-2.3.0/gems/railties-4.2.7.1/lib/rails/commands.rb:17:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 ssl proxy net-http