2011-02-01 32 views
2

我目前正在使用ActiveResource爲網絡服務創建客戶端和服務器應用程序。客戶端有一個很長的字符串(:歷史記錄),需要服務器完成一個轉換過程。Rails 3:ActiveResource自定義方法調用 - ClientError 414 - 變通?

在這裏,客戶端調用我的對象的方法後延伸的ActiveResource :: Base的

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

此行錯誤抱怨URI太長:

的ActiveResource :: ClientError失敗。響應代碼= 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長度。你確定它是hh字符串,而不是active_resource.post正在使用的實際URI嗎?