Ruby 在响应完成之前对HTTP响应进行响应?
对于任何Ruby库,在HTTP会话完成/关闭之前以及从服务器获取整个结果之前,当模式与HTTP响应匹配时,是否可以开始执行某些操作 伪代码:Ruby 在响应完成之前对HTTP响应进行响应?,ruby,http,Ruby,Http,对于任何Ruby库,在HTTP会话完成/关闭之前以及从服务器获取整个结果之前,当模式与HTTP响应匹配时,是否可以开始执行某些操作 伪代码: http.get 'http://example.org/foo.json' do |response| run_this_function if /\"field\":\"data\"/ =~ response.body_str end 我想要类似的东西,但是是Ruby。通常,Net::HTTP会将整个主体拉入内存,但您可以将该行为更改为流。发件人
http.get 'http://example.org/foo.json' do |response|
run_this_function if /\"field\":\"data\"/ =~ response.body_str
end
我想要类似的东西,但是是Ruby。通常,Net::HTTP会将整个主体拉入内存,但您可以将该行为更改为流。发件人: 流式响应主体»↑ 默认情况下,Net::HTTP将整个响应读取到内存中。如果您正在处理大型文件或希望实现进度条,则可以将正文直接流式传输到IO 你会希望你的代码在街区里扎营。有关详细信息,请参阅文档,因为您应该了解更多信息,但基本上它会说: 如果给定了一个块,则将主体传递给该块,主体以片段形式提供,因为它是从套接字读入的
你是在rails上运行还是只是ruby?只是ruby。我正在编写一个http客户端。
uri = URI('http://example.com/large_file')
Net::HTTP.start(uri.host, uri.port) do |http|
request = Net::HTTP::Get.new uri
http.request request do |response|
open 'large_file', 'w' do |io|
response.read_body do |chunk|
io.write chunk
end
end
end
end