我正在测试 Fullcontact API 以检索有关特定人员的信息。如果我正在使用他们的 API 查找的人在他们的数据库中不存在,它将返回 404 Not found 错误。我试图通过检索其他用户名来解决这个问题,但它不起作用。这是代码:
person = FullContact.person(email: 'wilson@wilsontest.com')
if person.to_i > 400
person = FullContact.person(email: 'wilsonp@gmail.com')
else
person = FullContact.person(email: 'wilson@wilsontest.com')
end
p person
当找不到电子邮件时,这仍然显示 404 Not found。
最佳答案
如果您使用的是 fullcontact-api-ruby
gem,则 FullContact.person
调用应该会引发一个 FullContact::NotFound
错误如果这个人不存在。您需要挽救该错误才能尝试其他操作:
def get_person
emails ||= ['wilson@wilsontest.com', 'wilsonp@gmail.com']
person = FullContact.person(email: emails.shift)
rescue FullContact::NotFound
unless emails.empty?
retry
else
# bottom line
end
end
请注意,异常在 Ruby 中非常慢,而且您还会访问外部 API,因此请注意此处的响应时间。
关于ruby - 如何对从外部 API 调用 ruby 返回的 404 运行 "if"语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32819808/