Tag: javax.imageio

从URL下载图像?

我正在尝试使用HTTP :: get从我创建的URL下载Google图表的图像。 这是我的第一次尝试: failures_url = [title, type, data, size, colors, labels].join(“&”) require ‘net/http’ Net::HTTP.start(“http://chart.googleapis.com”) { |http| resp = http.get(“/chart?#{failures_url”) open(“pie.png” ,”wb”) { |file| file.write(resp.body) } } 其中只生成一个空的PNG文件。 对于我的第二次尝试,我在http.get()调用中使用了存储在failure_url内的值。 require ‘net/http’ Net::HTTP.start(“http://chart.googleapis.com”) { |http| resp = http.get(“/chart?chtt=Builds+in+the+last+12+months&cht=bvg&chd=t:296,1058,1217,1615,1200,611,2055,1663,1746,1950,2044,2781,1553&chs=800×375&chco=4466AA&chxl=0:|Jul-2010|Aug-2010|Sep-2010|Oct-2010|Nov-2010|Dec-2010|Jan-2011|Feb-2011|Mar-2011|Apr-2011|May-2011|Jun-2011|Jul-2011|2:|Months|3:|Builds&chxt=x,y,x,y&chg=0,6.6666666666666666666666666666667,5,5,0,0&chxp=3,50|2,50&chbh=23,5,30&chxr=1,0,3000&chds=0,3000”) open(“pie.png” ,”wb”) { |file| file.write(resp.body) } } 并且,出于某种原因,即使第一次尝试在http.get()调用中具有相同的数据,此版本仍然有效。 有人知道为什么吗? 解: 在试图弄清楚为什么会发生这种情况后,我发现“ 如何通过HTTP下载二进制文件? ”。 其中一条评论提到在Net::HTTP.start(…)调用中删除http://否则它将不会成功。 我这样做之后果然: failures_url = [title, […]