- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何以及在何处实现 setReadTimeout 或 setConnectTimeout?我的下面的测试总是在编译之前抛出错误 its undefined
当没有连接时,它会在 in.readLine() 处阻塞,应用程序将永远等待
try {
URL url = new URL("http://mydomain/myfile.php");
//url.setReadTimeout(5000); does not work
InputStreamReader testi= new InputStreamReader(url.openStream());
BufferedReader in = new BufferedReader(testi);
//in.setReadTimeout(5000); does not work
stri = in.readLine();
Log.v ("GotThat: ",stri);
in.close();
} catch (MalformedURLException e) {
} catch (IOException e) {
}
谢谢你的帮助
克里斯
最佳答案
使用 URLConnection。
URL url = new URL("http://mydomain/myfile.php");
URLConnection connection = url.openConnection()
int timeoutMs = 2000;
connection.setReadTimeout(timeoutMs );
InputStream urlInputStream = connection.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(urlInputStream));
String firstLine = in.readLine();
System.out.println("GotThat: " + firstLine);
in.close();
这对我有用。由于您的评论 christian Muller,我在几个网站上进行了尝试并调整了 timeoutMs
值。将 timeoutMs
设置为 250 毫秒应该会导致 SocketTimeoutException
。如果你然后逐步增加它,你会看到最后你读了一行。
例如,如果我尝试:
URL url = new URL("http://msdn.microsoft.com/en-US/");
URLConnection connection = url.openConnection();
int timeoutMs = 250;
connection.setReadTimeout(timeoutMs);
我明白了
Exception in thread "main" java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:695)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1195)
at test.Main.main(Main.java:25)
如果我对 550 timeoutMs
进行同样的尝试,它会起作用:
GotThat: <!DOCTYPE html>
关于Java setReadTimeout() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18766443/
如何以及在何处实现 setReadTimeout 或 setConnectTimeout?我的下面的测试总是在编译之前抛出错误 its undefined 当没有连接时,它会在 in.readLine
考虑以下片段: URLConnection connection = target.openConnection(); connection.setConnectTimeout(5000); // 5
我正在开发一个需要从服务器下载数据的应用程序。 我使用以下代码,除了有时在文件下载过程中卡住之外,它可以正常工作。 try{ URL url = new URL( dlUrl ); c
我正在尝试使用用户定义的代理设置连接到互联网。我已将 setReadTimeout 设置为 5 秒。如果配置的代理不正确,那么我们将无法连接到互联网,我正在使用以下代码,但读取超时根本不会发生。
我想知道何时以及为何引发“java.net.SocketTimeoutException 读取超时”。 URL obj = new URL(url); HttpURLConne
如果这听起来是一个非常愚蠢的问题,我很抱歉,但是谷歌搜索了很长一段时间没有给出这个问题的答案。 我正在尝试为我与服务器建立的连接设置超时,我正在使用 HttpComponentsClientHttpR
我正在通过 HTTP 连接将数据从 Android Mobile 发布到服务器。我能够将数据发布到服务器并得到服务器的确认。但是有时如果我的服务器通信线程在发布数据后等待服务器的确认,那时候我会失去
我在 Mac 上创建了一个简单的 Go 应用程序,用于在 TCP 连接中写入和读取数据。我用过 GAE Go 版本。后来,我把那个程序移植到 Windows 上,我得到了这个错误: Connectio
我遇到一个问题,我需要向其 POST 大消息的外部 HTTP 服务器出现内存不足问题。我的 HTTP 客户端代码没有超时。可以通过使用kill -STOP 暂停HTTP 服务器进程来重现此行为(要撤消
我想知道方法 setConnectionTimeou() 和setReadTimeOut() 用于 HttpURL 连接?我知道这些值取决于服务器以及服务器正在执行的任务。但我仍然想知道这些方法的推荐
我是一名优秀的程序员,十分优秀!