0

我在使用 Typhoeus 执行请求时遇到问题,因为我的查询需要在其中包含引号。

如果 URl 是

url = "http://app.com/method.json?'my_query'"

一切正常。但是,如果查询如下(我已经在浏览器中测试过),我尝试运行的方法只会返回我想要的结果:

url2 = "http://app.com/method.json?"my_query""

跑步时

Typhoeus::Request.get(url2) 

我得到 (URI::InvalidURIError)

用“\”转义引号不起作用。我怎样才能做到这一点?

谢谢

4

3 回答 3

1

您应该使用URI.encodeor正确编码您的 URI CGI.escape,这样做会得到正确的 URL,如下所示:

http://app.com/method.json?%27my_query%27 # Single quotes
http://app.com/method.json?%22my_query%22 # Double quotes
于 2011-07-18T23:52:58.193 回答
0

尝试:

require 'uri'
URI.encode('"foo"') 
=> "%22foo%22"
于 2011-07-18T23:53:10.860 回答
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 请求并将其作为消息体传递。

于 2017-08-18T06:13:49.750 回答