我需要输入前X个字符/字节/大型远程XML文件。
下面的代码成功地将文件拉下来,但我无法弄清楚如何在一定数量/数量的数据后将其剪掉。
uri = "https://domain.com/file.xml"
Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
request = Net::HTTP::Get.new uri
http.set_debug_output $stderr
http.request request do |response|
StringIO.open do |str|
response.read_body do |chunk|
str.puts chunk
end
end
end
end
我尝试了类似下面的内容,但是创建了一个字符串,其中第一个块的内容反复重复。
response.read_body do |chunk|
while str.size < 50000
str.puts chunk
end
end
我也试过了:
response.read_body do |chunk|
if str.size > 50000
puts "BIG ENOUGH!"
break
end
end
这也导致结果str成为第一个块的内容,反复重复,直到达到指定的大小限制。