微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ruby net/http/get 不适用于 url,但适用于 uri为什么?

如何解决Ruby net/http/get 不适用于 url,但适用于 uri为什么?

我有一个 Ruby 代码

require 'net/http'
url = "https://stackoverflow.com/questions/65798852/how-do-i-set-an-electron-variable-at-compile-time"
response = Net::HTTP.get_response(url,'/')

产生错误

getaddrinfo: nodename nor servname provided,or not kNown (SocketError)

Failed to open TCP connection to https://stackoverflow.com/questions/65798852/how-do-i-set-an-electron-variable-at-compile-time:80 (getaddrinfo: nodename nor servname provided,or not kNown) (SocketError)

但它与 uri 完美配合:

require 'net/http'
url = "https://stackoverflow.com/questions/65798852/how-do-i-set-an-electron-variable-at-compile-time"
uri = URI(url)
response = Net::HTTP.get_response(uri)

那么,谁能解释一下有什么区别,为什么这么有效,以及 URI 有什么特别之处?

解决方法

不同之处在于您的 urlString 的一个实例,它恰好是一个 URL。但是因为只是一个简单的字符串所以没有什么特别的意义。

uriURI 的一个实例,它不仅是一个简单的字符串,而且已经分析了字符串中的 URL,现在它提供了几种优化的方法来返回 URL 的特定部分——比如协议、主机名、路径或查询参数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。