Ruby Typhoeus Запрос: URL с цитатами - PullRequest
0 голосов
/ 19 июля 2011

У меня проблема с выполнением запроса с использованием Typhoeus, поскольку мой запрос должен содержать кавычки.

Если URl равен

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

все отлично работает. Однако метод, который я пытаюсь запустить, возвращает только те результаты, которые мне нужны, если запрос следующий (я проверял его в браузере):

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

При работе

Typhoeus::Request.get(url2) 

Я получаю (URI :: InvalidURIError)

Выход из кавычек с "\" не работает. Как я могу это сделать?

Спасибо

Ответы [ 3 ]

1 голос
/ 19 июля 2011

Вы должны правильно кодировать свой URI с помощью URI.encode или CGI.escape, при этом вы получите правильные URL-адреса, например:

http://app.com/method.json?%27my_query%27 # Single quotes
http://app.com/method.json?%22my_query%22 # Double quotes
0 голосов
/ 18 августа 2017

Передача json, кавычек и т. Д. В запросе GET является сложной задачей.В Ruby 2+ мы можем использовать метод escape модуля URI Ruby.

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

Но я предлагаю использовать его как POST-запрос и передать его как тело сообщения.

0 голосов
/ 19 июля 2011

Попробуйте:

require 'uri'
URI.encode('"foo"') 
=> "%22foo%22"
...