gpt4 book ai didi

java - 如何使用 URLConnection.getContentLength()

转载 作者:行者123 更新时间:2023-12-01 11:41:18 24 4
gpt4 key购买 nike

所以我的程序遇到了这个相当奇怪的问题。我尝试做的是检查 Content-Length URL 的编号,然后在非静态方法中使用该数字以及连接其他类的 if-else 语句。但我的问题是,当我研究互联网以某种方式解决这个问题时,我可以使用这些静态方法来获取 contentLength 并且它不适用于非静态。所以我尝试了一下,但从未真正得到任何结果。我基本上想做的是通过另一个类中的非静态方法调用带有静态方法的类,我想这不应该是问题(或者应该?我真的不知道,因为我从来没有之前使用过静态方法)。然后我使用此代码来确定具有更改日期的随机网页的 contentLength:

    public static void main() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
c.setTime(new Date()); // Now use today date.
c.add(Calendar.DATE, 1); // Adding 1 day
String output = sdf.format(c.getTime());

try {
String urlStr = "http://www.sasintern.de/show_pdf.php?fn=" + output + ".pdf";
URL url = new URL(urlStr);
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
int contentLength = httpConn.getContentLength();
if (contentLength < 2000) {
new NotWorkingActivity();
System.out.println("unknown content length");
} else {
new download2Activity();
System.out.println("content length: " + contentLength + " bytes");
}
InputStream inStream = httpConn.getInputStream();
// now read data
// ...

// close connection
httpConn.disconnect();
} catch (Exception ex) {
ex.printStackTrace();
}
}

之后,当确定页面大小小于2000字节时,应该在另一个类中显示一个Toast,表明该页面不可用,但是当它更大时,则应该打开一个新类,正如您在 else 语句中看到的那样。但它不起作用,我想我只是搞砸了静态方法。我只是对他们不太有经验。对于我可能犯的任何其他错误,我深表歉意。如果我的问题有不同的解决方案,希望更容易理解且更好使用,我将不胜感激。

拜托,我需要有关此问题的帮助,希望您能理解我的意思。预先感谢:)

最佳答案

阅读手册

http://docs.oracle.com/javase/7/docs/api/java/net/URLConnection.html#getContentLength()public int getContentLength()

Returns the value of the content-length header field.

并非所有资源都设置 Content-Length header 。因此,您需要获取输入流并读取所有字节直到结束以对其进行计数。

关于java - 如何使用 URLConnection.getContentLength(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29499733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com