当以下脚本运行时,如何将来自 API 查询的 JSON 响应捕获到单独的 output.json 文件中? #初学者#Ruby

How do I capture JSON response from an API query into a separate output.json file when the below script runs ? #Beginner #Ruby

我想知道如何捕获上述脚本运行后输出的 JSON 响应,然后创建另一个文件 file.json 其中 JSON响应已存储。

require "net/http"

url = URI("https://jakunamatata.net/v1/jakunamatata-analytics/summary")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Get.new(url)

response = https.request(request)
puts response.read_body;
// prints some json output
require 'uri'
require 'pathname'
require 'net/http'

# This url does not seem to work - tested with example.com
url = URI("https://jakunamatata.net/v1/jakunamatata-analytics/summary")
path = Pathname.new(Dir.pwd).join('output.json')

Net::HTTP.start(url.host, url.port, use_ssl: true) do |http|
  request = Net::HTTP::Get.new(url)
  http.request(request) do |response|
    File.open(path, 'w') do |io|
      response.read_body do |chunk|
        io.write(chunk)
      end
    end
  end
end

puts "File downloaded to #{path}."

这会将下载直接流式传输到磁盘,而不是将响应正文读入内存。一旦您厌倦了重新发明轮子,请查看 down gem.