Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 何时在http请求中使用\u ssl_Ruby On Rails_Ruby_Http_Ssl_Https - Fatal编程技术网

Ruby on rails 何时在http请求中使用\u ssl

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

我正在与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)
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端口(这对服务器来说听起来像希腊语)