gpt4 book ai didi

java - Android 中的 HTTPURL 连接速度慢

转载 作者:行者123 更新时间:2023-12-02 13:01:37 24 4
gpt4 key购买 nike

我使用以下代码

private String resultGET(String addr)
{
try
{
String result = "";
HttpURLConnection conn = null;
addr = (isFull)?addr:Statics.fullURL(addr);
try
{
URL url = new URL(addr);
conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("User-Agent", Statics.USER_AGENT);
InputStream ips = conn.getInputStream();

int responseCode = conn.getResponseCode();
if (200 != responseCode)
{
Feedback.setError("GET error: " + responseCode + " on " + addr);
return "";
}

BufferedReader bufr = new BufferedReader(new InputStreamReader(ips));
String line;
while ((line = bufr.readLine()) != null) result += line;
bufr.close();
} finally{if (null != conn) conn.disconnect();}
return result;
} catch(Exception e)
{
Feedback.setError("get fault " + Utils.stackTrace(e));
return "";
}
}

Feedback 只是一个 Java 类,我在内部使用它来处理发送回 Android 应用程序前端的所有消息(这是一个混合应用程序,上面的代码是我的插件的一部分)为应用程序编写)。

我发现,当返回大量数据时,resultGET调用会变得极其缓慢。例如,一个 43Kb 的 Javascript 文件 - 我后来用它通过 Duktape 运行 JS 代码,下载和保存需要 1 分钟的时间。

对于 Java 来说,我还是个新手,所以我想我在这里做错了什么,导致了这个问题。我非常感谢任何能够让我走上正轨的人。

<小时/>

过了一会儿...

我现在已在 Android 6 设备(而不是我的默认 Android 4.4.2 设备)上测试了该问题。在 Android 6 上,下载+文件保存速度为 5 秒左右。在 Android 4.4.2 上,它超过 40 秒。在早期版本的 Android 上,HTTPURLConnection 是否存在任何已知问题?我

最佳答案

  String result = "";

字符串上的 += 运算符速度很慢。如果你有很多行,请使用 StringBuilder sb = new StringBuilder();并使用它的append()方法来sb.append(line + "\n");

最后你可以使用 result = sb.toString();

关于java - Android 中的 HTTPURL 连接速度慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44280012/

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