【问题标题】:NET::HTTP on rails anyway to increase timeoutNET::HTTP on rails 无论如何都会增加超时
【发布时间】:2018-03-13 06:04:19
【问题描述】:

我使用 NET:HTTP 使用 rails 的 form_post 方法对第三方支付 API 进行了 NET:HTTP 调用。

res = Net::HTTP.post_form(uri, payment_details)
logger.info "RESPONSE: #{res}"
descrypted_res = JSON.parse(res.body)
logger.info "RESPONSE: #{descrypted_res}"

有时,我收到回复说 HTTPOK,有时我什么也没得到。我怀疑支付服务器没有及时响应我的请求,连接被终止。我的问题是,有没有办法增加 post_form 超时时间? 我想将其增加到 60 秒。

谢谢。

【问题讨论】:

    标签: ruby-on-rails timeout net-http


    【解决方案1】:

    您可以调整 ruby​​ 方法: https://docs.ruby-lang.org/en/2.0.0/Net/HTTP.html#method-c-post_form

    像这样:

    def _post_form(url, params)
      req = Net::HTTP::Post.new(url)
      req.form_data = params
      req.basic_auth url.user, url.password if url.user
      Net::HTTP.start(
        url.hostname,
        url.port,
        use_ssl: url.scheme == 'https',
        read_timeout: 600
      ) do |http|
        http.request(req)
      end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-22
      • 1970-01-01
      • 1970-01-01
      • 2015-04-30
      • 1970-01-01
      • 1970-01-01
      • 2012-11-05
      • 2019-09-27
      相关资源
      最近更新 更多