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.encodeまたはを使用して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、quotesなどを渡すのは難しいです。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 に答える