我在使用Typhoeus进行请求时遇到问题,因为我的查询需要在其中加上引号。
如果URl是
url = "http://app.com/method.json?'my_query'"
一切正常。但是,我尝试运行的方法只返回我想要的结果,如果查询是以下(我在浏览器中测试过):
url2 = "http://app.com/method.json?"my_query""
运行时
Typhoeus::Request.get(url2)
我得到(URI :: InvalidURIError)
使用“\”转义引号不起作用。我怎么能这样做?
由于
答案 0 :(得分:1)
您应该使用URI.encode
或CGI.escape
对URI进行正确编码,这样做会为您提供正确的网址:
http://app.com/method.json?%27my_query%27 # Single quotes
http://app.com/method.json?%22my_query%22 # Double quotes
答案 1 :(得分:0)
尝试:
require 'uri'
URI.encode('"foo"')
=> "%22foo%22"
答案 2 :(得分:0)
在GET请求中传递json,引号等很棘手。在Ruby 2+中,我们可以使用Ruby的URI模块' escape'方法
> URI.escape('http://app.com/method.json?agent={"account":
{"homePage":"http://demo.my.com","name":"Senior Leadership"}}')
但我建议将其用作POST请求并将其作为邮件正文传递。