在使用Wistia API时,我遇到了这种奇怪的现象:浏览器为200,HTTParty为404。
目前,我有一个带嵌入类的视频模块:
module Video
class Embed
include ActiveModel::Model
include HTTParty
base_uri 'https://fast.wistia.net/oembed'
format :json
default_params api_password: ENV['WISTIA_PASSWORD']
class << self
def find(hashed_id)
get("", query: { url: url_query("#{hashed_id}") })
end
private
def url_query(hashed_id)
"http%3A%2F%2Fhome%2Ewistia%2Ecom%2Fmedias%2F#{hashed_id}"
end
end
end
end
执行Video::Embed.find(@video.hashed_id)
时,输出的代码在日志中显示如下:
HTTP GET (59.97ms) https://fast.wistia.net:443/oembed?api_password=not_getting_my_password&url=http%3A%2F%2Fhome%2Ewistia%2Ecom%2Fmedias%2Fth3-3Xamp13
Response status Net::HTTPNotFound (404)
Response body
但是,如果我粘贴到我的网址,我可以看到浏览器内部的JSON加载(200)。
密码正确(已测试),hashed_id正确(已测试),并且通过将网址粘贴到浏览器中来测试网址。
我感觉它是一个跨性别问题,但即便如此,我也不确定如何解决这个问题。
更新:执行curl会像浏览器一样返回JSON。