2011-07-18 18 views
0

私の質問には引用符を付ける必要があるため、Typhoeusを使用してリクエストを行う際に問題が発生しています。 URLの場合Ruby Typhoeus Request:引用符付きのURL

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

すべてが正常に動作します。

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

私が手

Typhoeus::Request.get(url2) 

を実行しているクエリは、(私はブラウザでそれをテストしてみた)、次のされている場合しかし、私は実行しようとしている方法は、私が望む結果を返します。 (URI :: InvalidURIError)

引用符を "\"でエスケープすると機能しません。これどうやってするの?

おかげ

答えて

1

あなたが適切にURI.encodeCGI.escapeであなたのURIをエンコードする必要がありますが、そうすることが、このようにあなたに適切なURLを取得します:

http://app.com/method.json?%27my_query%27 # Single quotes 
http://app.com/method.json?%22my_query%22 # Double quotes 
0

試してみてください。

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

はJSONを渡します、 GETリクエストの引用符などは扱いにくいです。 Ruby 2+では、RubyのURIモジュールの「エスケープ」メソッドを使用できます。

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

しかし、POSTリクエストとして使用してメッセージ本文として渡すことをお勧めします。

関連する問題