Как проверить, является ли статус HTTP-запроса 200 OK в Rails - PullRequest
0 голосов
/ 01 июля 2019

Я хочу сделать что-то вроде этого поста , но в настоящем приложении Rails, а не в тестировании.

Я хочу посмотреть, был ли HTTP-запрос успешным или нет.Если это не удачно (иначе 404 Not Found), тогда я хочу сделать другой HTML.Но я не могу понять синтаксис для сравнения.

В настоящее время у меня есть:

  def videos
    # get current_user's wistia_project_id & authorization token
    @current_user = current_user
    project_id = @current_user.wistia_project_id
    auth_token = "blah"
    request = "https://api.wistia.com/v1/projects/#{project_id}.json?api_password=#{auth_token}"

    @response = HTTP.get(request).body

    puts HTTP.get(request).status

    # handle errors: not 200 OK
    if !HTTP.get(request).status:
      render "/errors.html.erb/"
    end

    # get embed code for each video using the hashed_id, put in list
    @video_iframe_urls = JSON.parse(@response)['medias'].map do |p|
      "https://fast.wistia.com/embed/iframe/#{p["hashed_id"]}?version=v1&controlsVisibleOnLoad=true&playerColor=aae3d8"
    end
  end

1 Ответ

0 голосов
/ 01 июля 2019
require 'net/http'

uri = URI("https://api.wistia.com/v1/projects/#{project_id}.json?api_password=#{auth_token}")
res = Net::HTTP.get_response(uri)

# Status
puts res.code       # => '200'
puts res.message    # => 'OK'
puts res.class.name # => 'HTTPOK'

# Body
puts res.body if res.response_body_permitted?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...