我怎样才能浏览这个查询字符串

Opt*_*tte 5 ruby url ruby-on-rails query-parameters

我将此请求发送到服务:

get_store_data = Typhoeus::Request.new("http://localhost:3000/api/v1/store?service=#{(proxy_ticket.service)}&ticket=#{proxy_ticket.ticket}")
Run Code Online (Sandbox Code Playgroud)

proxy_ticket.service解析为此字符串"http://localhost:3000/api/v1/store".发送请求时,此字符串将转义为:

service=http%3A%2F%2Flocalhost%3A3000%2Fapi%2Fv1%2Fstore
Run Code Online (Sandbox Code Playgroud)

问题是另一端的服务需要服务参数,"http://localhost:3000/api/v1/store"如何防止此查询字符串被转义?

Mik*_*H-R 6

另一方应该是不受限制的.如果您仍然想知道如何操作,但是这里uri.unescape使用的方法是这样的:

require 'uri'

enc_uri = URI.escape("http://example.com/?a=\11\15")
p enc_uri
# => "http://example.com/?a=%09%0D"

p URI.unescape(enc_uri)
# => "http://example.com/?a=\t\r"
Run Code Online (Sandbox Code Playgroud)

如果你想快速浏览一个uri(并且不想因某些奇怪的原因或其他原因打开一个repl,比如可能它侮辱了你的荣誉或其他什么.)你可以尝试这个网站


Bro*_*tse 2

你不能。应该由“另一方”解码此参数(而且很可能他们这样做)。

例如,rails 自动执行此编码。您可以通过更改一些操作来检查它,raise params.pretty_inspect并使用额外的 param 调用它your/action/route?service=http%3A%2F%2Flocalhost%3A3000%2Fapi%2Fv1%2Fstore。您将看到参数包括service: http://localhost:3000/api/v1/store.

如果这对您不起作用,那么您需要与另一方联系,以便他们实施此操作。没有其他方法可以在 get url 中传递 url。