HttpURLConnection setReadTimeOut()未按预期工作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HttpURLConnection setReadTimeOut()未按预期工作相关的知识,希望对你有一定的参考价值。

我正在使用HttpURLConnection连接到jsp页面并将readTimeout配置为5s。

并将Thread.Sleep()的jsp页面执行延迟了10秒。

但是不要获得超时异常而是连接等待10秒才能获得响应。

HttpURLConnection con = (HttpURLConnection)jspUrl.openConnection();
con.setReadTimeout(5000);
con.connect();

Jsp页面内容如下所示。

<%
    Thread.sleep(10000);
    JSONArray arrayObj = new JSONArray();
    arrayObj.put(123);
    out.println(arrayObj);  
%>
答案

在运行时,您的jsp页面被编译为servlet类,直到您的Thread.sleep(10000);调用,一些响应已经通过连接写入。所以在客户端(你的httpurlconnection)已经做了一些读数,所以你没有陷入readtimeoutexception

你可以看看here

你应该直接使用Servlet来测试超时...

以上是关于HttpURLConnection setReadTimeOut()未按预期工作的主要内容,如果未能解决你的问题,请参考以下文章

ADO.Net IsolationLevel.Snapshot 与 SET READ_COMMITTED_SNAPSHOT ON

安全使用 HttpURLConnection

HttpURLConnection 超时设置

Android之HttpURLConnection

HttpURLConnection.getInputStream 很慢

同步高并发的HTTP请求(HttpURLConnection)?