Rails 3: вызов пользовательского метода ActiveResource - ClientError 414 - Обойти это? - PullRequest
2 голосов
/ 01 февраля 2011

В настоящее время я создаю клиентское и серверное приложение, используя ActiveResource для веб-обслуживания.У клиента есть длинная строка (: history), которая требует процесса преобразования, выполняемого сервером.

Здесь клиент вызывает метод post для моего объекта, который расширяет ActiveResource :: Base

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

Ошибка в этой строке, сообщающая, что URI слишком длинный:

ActiveResource :: ClientError Failed.Код ответа = 414. Ответное сообщение = Request-URI Too Large.

Какие еще есть варианты для отправки "больших" данных?Вероятно, ищет около 2000 символов данных для строки hh выше.

Спасибо!

Ответы [ 2 ]

6 голосов
/ 08 февраля 2012

Итак, подпись для метода записи:

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 голосов
/ 02 марта 2011

Я не думаю, что параметры записи учитываются в длине URI. Вы уверены, что это строка hh, а не фактический URI, который использует active_resource.post?

...