我正在为我正在制作的Android应用程序的网站发出HTTP get请求.
我正在使用DefaultHttpClient并使用HttpGet发出请求.我得到实体响应,从中获取一个InputStream对象来获取页面的html.
然后我循环完成回复,如下所示:
BufferedReader r = new BufferedReader(new InputStreamReader(inputStream));
String x = "";
x = r.readLine();
String total = "";
while(x!= null){
total += x;
x = r.readLine();
}
Run Code Online (Sandbox Code Playgroud)
然而,这非常缓慢.
这效率低吗?我没有加载一个大的网页 - www.cokezone.co.uk所以文件大小不大.有一个更好的方法吗?
谢谢
安迪
okhttp 的常见示例涵盖了 get 和 post 的场景。
但我需要通过 url 获取文件的文件大小。由于我需要通知用户,并且只有在获得他们的批准后才能下载文件。
目前我正在使用此代码
URL url = new URL("http://server.com/file.mp3");
URLConnection urlConnection = url.openConnection();
urlConnection.connect();
int file_size = urlConnection.getContentLength();
Run Code Online (Sandbox Code Playgroud)
在这个 stackoverflow 问题中提到如何在下载文件之前知道文件的大小?
哪个有效,但是当我在我的项目中使用 okhttp 来处理其他 get 请求时,我也希望将它用于这种情况。
我遇到了这个 URL url的问题, 它是一个 302 url,当你在 brwoser http://mp3goo.io/ 中运行时它会重定向到这个站点,但是当你在下载管理器上发布它时,它显示 10 mb 文件,我下载并工作美好的。我检查了我的 android 代码,它说 -1 内容长度如何获取文件大小,如下载管理器 图像
android http filesize httpurlconnection http-status-code-302
可能重复:
下载之前如何知道文件的大小?
我必须在我的应用程序中下载一些pdf文件。
在开始下载之前,我需要具有文件大小,以显示进度条或使用标准的“正在下载..”通知用户
如何获得具有新Url(' http://mysite.net//mypdf.pdf ')的文件大小?