我需要一个应用程序来阻止HTTP请求,所以我不得不添加几行代码,唯一一个我无法弄清楚的是声明if uri.scheme == 'https'; http.use_ssl = true是否有一种方法我可以在当前语句中设置http/https:
Net::HTTP.new(uri.host, uri.port).start do |http|
# Causes and IOError...
if uri.scheme == 'https'
http.use_ssl = true
end
request = Net::HTTP::Get.new(uri.request_uri)
http.request(request)
end
Run Code Online (Sandbox Code Playgroud)
添加: IOError: use_ssl value changed, but session already started
Jor*_*ing 20
根据文档,您无法use_ssl=在启动会话后(即之后start)进行调用.您必须先设置它,例如:
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true if uri.scheme == 'https'
http.start do |h|
h.request Net::HTTP::Get.new(uri.request_uri)
end
Run Code Online (Sandbox Code Playgroud)
尝试将您的代码更改为
http = Net::HTTP.new(uri.host, uri.port)
if uri.scheme =='https'
http.use_ssl = true
end
http.start do
request = Net::HTTP::Get.new(uri.request_uri)
puts http.request(request)
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4458 次 |
| 最近记录: |