尝试从索引控制器操作中调出一小段代码 但是得到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工作?
答案 0 :(得分:1)
这是我提问的answer 原因是
由于您没有使用多线程服务器,因此无法正常工作。 您的请求即将进入并阻止服务器,直到它完成。 在此期间,您向本地主机发出请求,但不是 被处理。