400 неверных запросов с HTTParty и Urban Airship

#ruby-on-rails #httparty #urbanairship.com #http-status-code-400

#ruby-on-rails #httparty #urbanairship.com #http-status-code-400

Вопрос:

У меня есть приложение, которое требует отправки push-уведомлений пользователю, когда сообщение, соответствующее определенным критериям, помещается в базу данных. Я использую urban airship и HTTParty для выполнения необходимых запросов, если выполняются условия. Моя модель выглядит следующим образом:

 class Urbanairship
 include HTTParty
 base_uri 'https://go.urbanairship.com'
 headers "Content-Type" => "application/json"
 basic_auth "xxxappkeyxxx", "xxxappsecretxxx"
 default_params :output => 'json'
 format :json

 def self.push(badge, alert_message, token)
  self.post('/api/push/',:body => {:aps => {:badge => badge, :alert => alert_message},   :device_tokens => [token]})
 end
end
  

Я продолжаю получать 400 неверных запросов, когда тестирую это в консоли. Есть идеи относительно того, в чем проблема? Я знаю, что urban airship нуждается в ‘content-type:application / json’ в заголовке запроса, но это должно быть учтено в модели. Заранее спасибо,
Джек

Ответ №1:

Я сам не знаю HTTParty, но, скорее всего, если вы сможете проанализировать результат и получить фактическое тело ответа, это должно сказать вам больше. 400 может быть из-за отсутствующего content-type, как вы упомянули, или недопустимого JSON, но это также может быть из-за недопустимого токена устройства или номера значка.

Комментарии:

1. Да. Оказывается, я забыл добавить .to_json в конец моего тела. И моя аутентификация была немного перепутана. Самоанализ все это прояснил.