gpt4 book ai didi

Android HttpURLConnection 非常慢

转载 作者:行者123 更新时间:2023-11-30 04:03:28 29 4
gpt4 key购买 nike

这就是我面对以下代码的情况:

如您所见,我正在尝试读取 HTTP 流。当我在 Android 模拟器上运行以下代码时,它在 100% 的时间内运行,当我在我的 Galaxy S3 上运行以下代码时,在 3G 上它在 100% 的时间内运行,当我尝试使用我的笔记本电脑连接到 URL 时浏览器它在 100% 的时间内工作,当我尝试使用 Galaxy S3 浏览器(在 wifi 和 3g 中)连接时它工作...... 100% 的时间。但是,当我尝试在 Wi-Fi 上使用我的 Galaxy S3 进行连接时,大约有 80% 的时间会超时。如果我删除超时属性,我会得到奇怪的异常,例如:

"recvfrom failed: ETIMEDOUT"
"failed to connect to <URL>: connect failed: ENETUNREACH (Network is unreachable)"
"unable to resolve the host <URL>: no address associated with hostname"

我愿意接受任何建议...

public static final String getHttpResponse(String url)
{
HttpURLConnection conn = null;
InputStream response = null;
try {
URL address = new URL(url);
conn = (HttpURLConnection)address.openConnection();
conn.setConnectTimeout(30 * 1000); //30 seconds
conn.setReadTimeout(30 * 1000); //30 seconds

response = conn.getInputStream();

if(conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
Log.e("Util.getHttpResponse", Integer.toString(conn.getResponseCode()));
return null;
}

String result = Util.streamToString(response);
return result;

} catch(IOException e) {
response = conn.getErrorStream();
Log.e("Util.getHttpResponse", Util.streamToString(response));
return null;

} finally {
if( response != null ) {
try {
response.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(conn != null) {
conn.disconnect();
}
}
}

更新:- 使用 AndroidHttpClient 无效- 获取输入流后,我在 eclipse IDE 中弹出一个错误...正如您所看到的,我的调试光标一直到第 107 行......这次我完成了输入流... Eclipse

最佳答案

我在 Android 设备上遇到了同样的问题。我在 url 中使用 IP 地址。最后,我发现 HttpURLConnection.connect(...) 方法在内部涉及 getHostName()。之后,我在 url 中使用域,然后它 100% 的时间都有效。

关于Android HttpURLConnection 非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12108166/

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