Отправка изображения с клиента Android на сервер Rails без запуска InvalidAuthenticityToken

1

Я создаю приложение для Android, которое запускается с сервера рельсов. Сначала, когда я пытался отправить простые данные String на сервер, я столкнулся с проблемой InvalidAuthenticityToken, но понял, что могу обойти проверку подлинности, установив тип контента на "json"

HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(Constants.REST_HOST + "/add_comment");
post.addHeader("Content-Type", "application/json");

Следующий шаг - попытка загрузить изображение профиля загрузки. Однако, когда я попытался загрузить фотографию через сообщение MultipartEntity, установка типа содержимого на "json" вызывает следующую ошибку:

StandardError (Неверная строка JSON):

но не задание типа содержимого возвращает исключение InvalidAuthenticityToken. Каков правильный способ размещения изображения на сервере rails с внешнего Java-клиента?

ActionController:: InvalidAuthenticityToken (ActionController:: InvalidAuthenticityToken):

Теги:
post
paperclip

3 ответа

3
Лучший ответ

Основываясь на предложении Джесси, я в конечном итоге использовал

protect_from_forgery :except => :upload_avatar_pic

чтобы отключить проверку подлинности, но только для определенной функции, поэтому проверки запросов браузера все еще проверяются.

0

Проблема, разрешенная Джесси Вольгамотт, сказала, но сообщение на странице "Вы перенаправлены", когда я отправляю форму (Обновить, создать, показать). Перед этим страница перенаправляется правильно. Я использую rails 2.3.8. Как решить эту проблему?

0

Вы можете отключить проверку подлинности на API без вызовов от не-веб-клиентов. Вы можете сделать это в фильтре перед

class ApiController < ApplicationController
  skip_before_filter :verify_authenticity_token

  def create
    #or whatever
  end
end
  • 0
    Спасибо, это работает. Но это также отключает проверку, когда запрос поступает из реального браузера? (мой сервер rails обслуживает как клиент Android, так и веб-сайт)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню