繁体   English   中英

Rails中的SENDING POST错误和HTTPPARTY语义错误我的请求

[英]Error SENDING POST in rails and HTTPPARTY semantic error my request

这是我的错误,当我使用我的方法{“errors”=> {“users”=> [“缺少所需字段的数据。”]},“msg”=>“请求格式正确但无法成为我的错误由于语义错误而被紧随其后。”}

class BookingNotifier
include HTTParty
def initialize(booking_id)
  @booking = Booking.find booking_id
  @venue = @booking.event.service.venue
  @body = { "users" => [] }
  @headers = {
      "Accept" => "application/json",
      "Authorization" => "ENV_KEY",
      "Content-Type" => "application/json"
  }
end

def send_venue_notification
  venues_objects = []
    if @venue.notifications_enabled
      venues_objects << { "cellphone" => @booking.event.service.venue.phone,
                          "country_code" => "+57",
                          "user_session_keys" => [{ "key" => "Nombre",   "value" => @booking.profile.name },
                                                  { "key" => "Centro",   "value" => @booking.event.service.venue.name },
                                                  { "key" => "Cupos",    "value" =>  @booking.quantity },
                                                  { "key" => "Horarios", "value" => @booking.time.strftime("%I:%M %p el %d/%m/%Y") }] }.to_json
      @body["users"] = venues_objects
      make_request_venue
    end
end

def make_request_venue
  HTTParty.post("http://api.treble.ai/api/poll/49/deploy", headers: @header, body: @body)
end

问题是由to_json在错误的地方调用引起的。

整个请求正文应作为JSON发送。 在您的代码中,您调用to_json以获取稍后被推送到@body["users"]数组的哈希。

请在发送请求时从send_venue_notification删除to_json并为@body调用它:

HTTParty.post("http://api.treble.ai/api/poll/49/deploy", headers: @headers, body: @body.to_json)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM