首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby Typhoeus请求:带引号的url

Ruby Typhoeus请求:带引号的url
EN

Stack Overflow用户
提问于 2011-07-19 07:30:46
回答 3查看 1.1K关注 0票数 0

我在使用Typhoeus进行请求时遇到了问题,因为我的查询需要在其中加上引号。

如果URl是

代码语言:javascript
复制
url = "http://app.com/method.json?'my_query'"

一切都很好。然而,我尝试运行的方法只有在查询符合以下条件时才返回我想要的结果(我已经在浏览器中测试过了):

代码语言:javascript
复制
url2 = "http://app.com/method.json?"my_query""

运行时

代码语言:javascript
复制
Typhoeus::Request.get(url2) 

我得到(URI::InvalidURIError)

用"\“转义引号不起作用。我该怎么做呢?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-19 07:52:58

您应该使用URI.encodeCGI.escape正确地编码您的URI,这样做将获得正确的URL,如下所示:

代码语言:javascript
复制
http://app.com/method.json?%27my_query%27 # Single quotes
http://app.com/method.json?%22my_query%22 # Double quotes
票数 1
EN

Stack Overflow用户

发布于 2011-07-19 07:53:11

尝试:

代码语言:javascript
复制
require 'uri'
URI.encode('"foo"') 
=> "%22foo%22"
票数 0
EN

Stack Overflow用户

发布于 2017-08-18 14:13:50

在GET请求中传递json、引号等是很棘手的。在Ruby 2+中,我们可以使用Ruby的URI模块的“转义”方法。

代码语言:javascript
复制
> URI.escape('http://app.com/method.json?agent={"account":
{"homePage":"http://demo.my.com","name":"Senior Leadership"}}')

但我建议将其用作POST请求,并将其作为消息体传递。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6740655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档