Ruby on rails 何时在http请求中使用\u ssl
我正在与URL建立HTTP连接。当我使用http.use_ssl=false时,它不起作用,响应为400错误。当我使用Ruby on rails 何时在http请求中使用\u ssl,ruby-on-rails,ruby,http,ssl,https,Ruby On Rails,Ruby,Http,Ssl,Https,我正在与URL建立HTTP连接。当我使用http.use_ssl=false时,它不起作用,响应为400错误。当我使用http.use_ssl=true时,它可以工作。为什么呢 url=”https://beta.makaan-ws.com/" uri=uri.parse(url) http=Net::http.new(uri.host,uri.port) http.use_ssl=true request=Net::HTTP::Put.new(uri.request\u uri) header
http.use_ssl=true
时,它可以工作。为什么呢
url=”https://beta.makaan-ws.com/"
uri=uri.parse(url)
http=Net::http.new(uri.host,uri.port)
http.use_ssl=true
request=Net::HTTP::Put.new(uri.request\u uri)
headers.each do | header_键,header_val|
请求.添加\字段(标题\键,标题\值)
结束
request.body=post_args.to_json
开始
response=http.request(请求)
营救
引发“url错误:#{url}”
结束
我想了解
使用_ssl
的作用?当URL为if https类型时,是否必须指定true?简言之,是的,通常是这样使用的:
http.use\u ssl=url.scheme=='https'
HTTP和HTTPS的TCP端口不同:
URI.parse(“http://example.com)。端口#=>80
解析https://example.com)。端口#=>443
但一般来说,任何协议都可以在任何端口号上使用,传输库无法可靠地知道使用哪种协议。例如,您可以轻松地将服务器配置为在端口443上使用普通http进行应答,反之亦然
这就是为什么这里的
使用_ssl
,它向http库指出,到该端口的连接应该使用TLS/TLS安全连接,而不是普通的非加密连接。但是我在分配ssl=true之前分配了端口。为什么ssl=false不能建立连接?@code0079端口号不保证协议,使用use_ssl=false
时,它将尝试使用普通http连接到ssl端口(这对服务器来说听起来像希腊语)