- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试像这样使用 setConnectTimeout 函数:
protected HttpURLConnection getConnection() throws SocketTimeoutException, IOException{
Log.d("HTTPRequest", address);
URL page = new URL(address);
HttpURLConnection connection = (HttpURLConnection) page.openConnection();
connection.setUseCaches(cacheResult);
connection.setConnectTimeout(3000);
connection.connect();
return connection;
}
然后:
public String getTextData() throws InternetConnectionUnavailableException {
try{
HttpURLConnection conn = getConnection();
StringBuffer text = new StringBuffer();
InputStreamReader in = new InputStreamReader((InputStream) conn.getContent());
BufferedReader buff = new BufferedReader(in);
String line;
while (true) {
if((line = buff.readLine()) != null){
text.append(line);
}else{
break;
}
}
return (text.toString());
} catch (SocketTimeoutException socketTimeoutException) {
throw new InternetConnectionUnavailableException();
} catch (IOException ioException) {
throw new InternetConnectionUnavailableException();
}
}
但是,它永远不会进入“catch (SocketTimeoutException socketTimeoutException)” block 。这里有什么问题。
附言为了进行测试,我制作了一个让我的服务器休眠 10 秒的页面。
最佳答案
试试这个:
try {
HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection();
con.setRequestMethod("HEAD");
con.setConnectTimeout(5000); //set timeout to 5 seconds
con.setReadTimeout(socketTimeout);
return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
} catch (java.net.SocketTimeoutException e) {
e.printStackTrace();
} catch (java.io.IOException e) {
e.printStackTrace();
}
关于android - HttpUrlConnection setConnectTimeout 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11392601/
我正在打开一个 HttpUrlConnection 并使用其继承的 setConnectTimeout 方法设置连接超时,但对于一个特定的 URL,我遇到了网关超时(504)。我不介意这样的网关超时,
我有一个 Android 应用程序连接到服务器搜索更新。如果服务器需要很长时间才能响应(+500 毫秒),我必须完成我的方法并继续执行程序。 我已经将 readTimeout 和 connectTim
我在我的应用程序中使用 HttpURLConnection 与我的服务器通信。但我发现如果我的 Android 设备连接不良,我的应用程序将挂起很长时间,这是一种糟糕的用户体验。我同时使用 setCo
我正在尝试像这样使用 setConnectTimeout 函数: protected HttpURLConnection getConnection() throws SocketTimeoutExc
我正在使用 HTTPUrlConnection 连接到一个简单的 RSS 提要。它完美地工作。我想为连接添加超时,因为我不希望我的应用程序在连接不良或其他情况下挂起。这是我使用的代码,setConne
我尝试将我的项目从 XE8 转移到 XE10.1 DataSnap 客户端模块有 SQLConnection1: TSQLConnection 当我将属性 Driver.ConnectTimeout
如果这听起来是一个非常愚蠢的问题,我很抱歉,但是谷歌搜索了很长一段时间没有给出这个问题的答案。 我正在尝试为我与服务器建立的连接设置超时,我正在使用 HttpComponentsClientHttpR
这是我的代码: URL u = new URL("http://www.google.com"); URLConnection conn = u.openConnection();
谁能解释一下这两者之间的区别: client = HttpClientBuilder.create() .setConnectionTimeToLive(1, TimeUnit.MINUTES
我是一名优秀的程序员,十分优秀!