1

我正在测试 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。

4

1 回答 1

3

如果您使用的是fullcontact-api-rubygem,如果此人不存在,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,因此请注意此处的响应时间。

于 2015-09-28T10:17:07.800 回答