这是我的 HTTParty 代码

      response = HTTParty.post(api_url,body: form_data,timeout: 5)
      rescue Timeout::Error
      ## create dummy response with 500 error code
      response = HTTParty::Response.new()
      ensure
       response

我要做的就是确保如果 HTTParty 无法连接给定的网站,则创建一个虚拟响应主体对象

但是当我尝试创建一个像这样的虚拟响应对象时
     ## response = HTTParty::Response.new(Rack::Request.new(api_url),Rack::Response.new('TimeOut Error',500),'TimeOutError')

但这不起作用,因为我的响应对象不响应 to_hash

任何人都可以提出更好的方法来完成相同的任务

最佳答案

如果有人来照顾 4 年后,可以尝试以下方法:

httparty_req = HTTParty::Request.new Net::HTTP::Get, '/'
nethttp_resp = Net::HTTPInternalServerError.new('1.1', 500, 'Internal Server Error')
response = HTTParty::Response.new(httparty_req, nethttp_resp, lambda {''}, body: '')

关于ruby - 是他们在 HTTParty 中使用 500 代码创建虚拟响应的一种方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25082866/

10-11 22:58