使用 Ruby 转义并下载 URL
我尝试从 URL 下载 HTML 内容,但没有成功。
这是 URL:
http://example.com/some_string[value]
当使用 RestClient 时,我收到此错误:
URI::InvalidURIError: bad URI(is not URI?)
我从 Ruby on Rails IRC 获得了一些帮助。这个想法是转义 URL 的结尾。
$ "http://example.com/" + CGI::escape("some_string[value]")
=> "http://example.com/some_string%5Bvalue%5D"
生成的 URL 不起作用,我收到 404。 但它可以在浏览器中运行。
有人知道如何让它发挥作用吗?
I'm trying to download the HTML content from a URL without success.
Here is the URL:
http://example.com/some_string[value]
When use RestClient I get this error:
URI::InvalidURIError: bad URI(is not URI?)
I got some help from the Ruby on Rails IRC. The Idea is to escape the end of the URL.
$ "http://example.com/" + CGI::escape("some_string[value]")
=> "http://example.com/some_string%5Bvalue%5D"
The generated URL does not work, I'm getting a 404.
It works in the browsers though.
Anyone knows how to get it to work?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
根据 URI RFC:
信任浏览器的响应或处理链接的能力是有风险的。他们会尽一切努力返回页面,而不是强制执行标准,因此无论页面或 URL 是否定义正确,他们都不是权威来源。
RestClient 的响应可能基于 URI,当我测试使用 URI 解析 URL 时,它返回了相同的错误。
我还没有见过使用未编码的“[”和“]”字符的URL。
According to the URI RFC:
Trusting a browser's response or ability to handle a link is risky. They do everything they can to return a page, instead of enforcing the standards, so they are not authoritative sources whether a page or URL is correctly defined.
RestClient's response is probably based on URI's, which returned the same error when I tested parsing the URL using URI.
I haven't ever seen a URL using unencoded "[" and "]" characters.