簡體   English   中英

Net::HTTP::Get 超時問題

[英]Net::HTTP::Get timeout issue

試圖調整一個簡單的代碼塊形成索引控制器動作。
但是得到 Net::ReadTimeout 錯誤。

class PaymentMethodsController < ApplicationController
  def index
    uri = URI.parse("http://localhost:3000")
    http = Net::HTTP.new(uri.host, uri.port)
    request = Net::HTTP::Get.new("/api/user/profile/payment", {'Content-Type' =>'application/json'})
    request.set_form_data({token: 'vjuri@mrd.com:CFTKGNZKXC'})
    res = http.request(request)

    render text: res.body
  end
end

從 rails 控制台,它就像一個魅力。

2.1.2 :027 > uri = URI.parse("http://localhost:3000") => #<URI::HTTP:0x00000004d0eb80 URL:http://localhost:3000> 
2.1.2 :028 > http = Net::HTTP.new(uri.host, uri.port) => #<Net::HTTP localhost:3000 open=false> 
2.1.2 :029 > request = Net::HTTP::Get.new("/api/user/profile/payment", {'Content-Type' =>'application/json'})
 => #<Net::HTTP::Get GET> 
2.1.2 :031 >  request.set_form_data({token: 'vjuri@mrd.com:CFTKGNZKXC'})
 => "application/x-www-form-urlencoded" 
2.1.2 :032 > res = http.request(request)
 => #<Net::HTTPOK 200 OK readbody=true> 
2.1.2 :033 > res.body
 => "{\"result\":{\"errorcode\":0,\"errormessage\":\"\",\"payments\":[]}}" 

如何從控制器強制 Net::HTTP 工作?

這是我的問題的答案
原因是

它不起作用,因為您沒有使用多線程服務器。 您的請求正在進入並阻塞服務器,直到它完成。 在此期間,您正在向未處理的本地主機發出請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM