我想从网址获取图片大小。 我的源代码在本地工作但是aws Ubuntu服务器将返回-1。 有什么问题?
URL url=new URL("https://www.bithumb.com/resources/img/comm/sp_coin.png?v=180510");
int image_size = url.openConnection().getContentLength();
System.out.println("mage size:: "+image_size);
答案 0 :(得分:0)
如果服务器没有使用有效的Content-Length
标头回复,则getContentLength
会返回-1
。作为替代方案,您始终可以获得返回数据的大小:
size = IOUtils.toByteArray(url.openStream()).length;
使用Apahe commons IO IOUtils
。
答案 1 :(得分:0)
有什么问题?
很难说。但是,最终要由Web服务(而不是Ubuntu或AWS)的实现来在响应中包含内容长度。
因此,如果您想找出为什么(并修复它),您需要检查(您的?)Web服务的实现,以及它如何创建响应。
正如@jspcal指出的那样,你可以解决这个问题。但为了做到这一点,您需要(至少)从响应数据流中读取整个图像。这是否是一个可行/有效的解决方案取决于您打算何时/何时使用内容长度。