400 Bad Request с HTTParty и Urban Airship

У меня есть приложение, которое требует push-уведомлений, отправляемых пользователю, когда сообщение, соответствующее определенным критериям, помещается в базу данных. Я использую городской дирижабль и 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 неверных запросов, когда тестирую это в консоли. Есть идеи, в чем проблема? Я знаю, что городскому дирижаблю требуется «тип контента: приложение/json» в заголовке запроса, но это должно быть отражено в модели. Заранее спасибо, Джек


person user721023    schedule 10.05.2011    source источник


Ответы (1)


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

person robotadam    schedule 10.05.2011
comment
Ага. Оказывается, я забыл добавить .to_json в конец своего тела. И моя авторизация была немного испорчена. Самоанализ все прояснил. - person user721023; 10.05.2011