如何解决Ruby net/http/get 不适用于 url,但适用于 uri为什么?
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 有什么特别之处?
解决方法
不同之处在于您的 url
是 String
的一个实例,它恰好是一个 URL。但是因为只是一个简单的字符串所以没有什么特别的意义。
而 uri
是 URI
的一个实例,它不仅是一个简单的字符串,而且已经分析了字符串中的 URL,现在它提供了几种优化的方法来返回 URL 的特定部分——比如协议、主机名、路径或查询参数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。