Jan*_*ane 18 ruby ruby-on-rails
我从ruby脚本发现了一个rails应用程序的帖子.该脚本创建一个变量请求
request = Net::HTTP::Post.new(url.path)
Run Code Online (Sandbox Code Playgroud)
然后按如下方式使用
request.content_type = "application/json"
request.body = JSON.generate( params )
response = Net::HTTP.start(url.host, url.port) {|http| http.request(request)}
Run Code Online (Sandbox Code Playgroud)
在服务器端发生了很多处理,我收到了一个Net::ReadTimeout错误
我试图指定一个超时期限
request.read_timeout = 500
Run Code Online (Sandbox Code Playgroud)
根据这个stackoverflow的答案,但我有一个
undefined method `read_timeout=' for #<Net::HTTP::Post POST> (NoMethodError)
Run Code Online (Sandbox Code Playgroud)
错误.我假设我在某处遗漏了一些简单的东西.所有线索都感激不尽
技术信息:
Jan*_*ane 32
解决了这个stackoverflow的答案
我改变了我的意见
response = Net::HTTP.start(url.host, url.port) {|http| http.request(request)}
Run Code Online (Sandbox Code Playgroud)
行
response = Net::HTTP.start(url.host, url.port, :read_timeout => 500) {|http| http.request(request)}
Run Code Online (Sandbox Code Playgroud)
这似乎解决了这个问题.
Pat*_*ity 30
在read_timeout与一个普通的可用Net::HTTP对象:
url = URI.parse('http://google.com')
http = Net::HTTP.new(url.host, url.port)
http.read_timeout = 5 # seconds
http.request_post(url.path, JSON.generate(params)) do |response|
# do something with response
p response
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29012 次 |
| 最近记录: |