ruby - 在 open-uri 请求中使用特殊字符

标签 ruby http uri open-uri

我正在使用 open-uri 从网络页面获取内容以与 nokogiri 一起使用。 我正在尝试类似的事情:

url = "http://pesquisa.bvsalud.org/portal/?output=site&lang=pt&from=0&sort=&format=summary&count=20&fb=&page=1&q=\"qualidade+de+vida\"&index=tw" 响应=打开(url)

然后我收到错误:URI::InvalidURIError: bad URI(is not URI?)

问题是:我知道我可以使用 URI.encode(url) 来阻止 url 中的某些特殊字符,但是当我清理 url 时,我请求的网站不会给我相同的响应,它不会使用“%22”而不是双引号时无法正确回答。

如何使用双引号提出此类请求?还有其他库可以做到吗? Open-uri 不接受这一点。我尝试使用 gems addressable-uri 并 eat,但两者都出现相同的错误。 :/

最佳答案

URI.encode('http://pesquisa.bvsalud.org/portal/?output=site&lang=pt&from=0&sort=&format=summary&count=20&fb=&page=1&q=\"qualidade+de+vida\"&index=tw')
=> "pesquisa.bvsalud.org/portal/?output=site&lang=pt&from=0&sort=&format=summary&count=20&fb=&page=1&q=%5C%22qualidade+de+vida%5C&index=tw"

关于ruby - 在 open-uri 请求中使用特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18732034/

相关文章:

javascript - Node.js 正在阻塞?

angular - 连接 Ionic 与 ERP odoo

php - 服务器为肯定存在于正确目录中的资源提供 410 错误

.net - 使用相对 URI

ruby - 在 Ruby 中形成卫生 shell 命令或系统调用

ruby - 两个时间实例之间的天数

java - 拍照后在onActivityResult中获取图像Uri?

c# - 结合完整的 URL 和虚拟 URL,就像浏览器一样

ruby - 对 Chef 变量有疑问,似乎无法让变量发挥作用

ruby-on-rails - Rails 检查数组是否存在