我有一个脚本调用 facebook 测试 api 来自动创建测试帐户。在看似随机的时间间隔内,从 50 个请求到 6000 个请求,我得到一个未被捕获的异常。我不知道如何找出错误是什么,所以我将从这里的相关代码开始。
我没有使用 URI 库,因为 facebook 键的管道字符会破坏 ruby 1.8.7 的 URI.parse。
require 'rubygems'
require 'net/https'
require 'json'
http = Net::HTTP.new(domain, 443)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
def request_wrapper(http, request)
retry_count = 5
begin
return http.request(request)
rescue Exception => e
retry_count--
if retry_count < 0
raise e
end
retry
end
for i in 0..500 do
request = Net::HTTP::Get.new('https://' + domain + path)
response = request_wrapper(http, request)
end
该代码将工作一段时间,但总是不可避免地报告以下内容:
在
rescue in request_wrapper': undefined method
-@' 中为 nil:NilClass (NoMethodError)
以前有人见过这个未定义的方法'-@'吗?再一次,这种情况非常间歇性地发生,但它确实是我身边的一根刺。它总是指向我调用请求包装器的代码行。
谢谢参观。