当以下脚本运行时,如何将来自 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.
我想知道如何捕获上述脚本运行后输出的 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.