我目前正在使用 ActiveResource 创建客户端和服务器应用程序以进行 Web 服务。客户端有一个长字符串(:history),需要服务器完成转换过程。
在这里,客户端调用我的对象上的 post 方法,该方法扩展了 ActiveResource::Base
active_resource.post(:convert, {:history => hh, :format => format})
此行错误提示 URI 太长:
ActiveResource::ClientError 失败。响应代码 = 414。响应消息 = 请求 URI 太大。
我还有哪些其他选项来发送“大”数据?可能会在 2000 个字符的数据附近查找上面的 hh 字符串。
谢谢!
最佳答案
所以 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)
关于ruby-on-rails - rails 3 : ActiveResource custom method call - ClientError 414 - Work around?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4861204/