2011-02-01 10 views
2

現在、WebサービスのためにActiveResourceを使用してクライアントとサーバーの両方のアプリケーションを作成しています。クライアントは長い文字列(:history)を持っており、サーバーによって変換処理が必要です。Rails 3:ActiveResourceカスタムメソッド呼び出し - ClientError 414 - 回避するには?

ActiveResource :: ClientErrorが失敗しました:

はここで、クライアントは、ActiveResource ::ベースURIが長すぎるという不満を

active_resource.post(:convert, {:history => hh, :format => format}) 

このラインエラーを拡張し、私のオブジェクト上のPOSTメソッドを呼び出します。応答コード= 414.応答メッセージ=要求URIが大きすぎます。

"大きな"データを送信するためのその他のオプションはありますか?おそらく上記のhh文字列のデータの2000文字付近を見ているでしょう。

ありがとうございます!

答えて

6

だから、POSTメソッドのシグネチャは次のとおりです。

post(custom_method_name, options = {}, body = '') 

だから、あなたが行うとき:

active_resource.post(:convert, {:history => hh, :format => format}) 

は、それはあなたのクエリ文字列に出てくるオプションのハッシュ、にあなたのポスト変数を入れていますポストのために。

やりたいことです:

active_resource.post(:convert, nil, {:history => hh, :format => format}.to_json) 
0

ポストパラメータはURIの長さを考慮しませんでした。 active_resource.postが使用している実際のURIではなく、hh文字列であると確信していますか?

関連する問題