有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

httpurlconnection在java中何时引发连接timedout异常?

这是我的代码:

connection.setConnectTimeout(5000);
ObjectOutputStream out=new ObjectOutputStream(connection.getOutputStream());
out.writeObject(to_be_sent);
out.flush();
out.close();
int resp_code=connection.getResponseCode();
if(resp_code==200)
{
 JOptionPane.showMessageDialog(obj.frame, "Your Application has been sent Successfully");
}

如你所见,我已将连接超时设置为5秒。我想知道什么时候抛出这个连接时间异常,以及哪一行抛出它。是连接时抛出的。getResponseCode()在5秒钟内不返回任何内容?
Edit
刚刚查阅了javadocs,发现getResponse代码只在无法连接到服务器时抛出IOException


共 (1) 个答案

  1. # 1 楼答案

    创建连接和连接是一个多步骤的过程,一些参数在执行连接后不会产生任何影响

    假设您使用的是URLConnection,如果您已经调用了connect(),或者隐式执行连接的方法之一,那么它将完全无效

    如果连接是使用getOutputStream方法隐式建立的,则会在第二行代码中引发异常

    这就抛出了java。网如果无法在指定时间内建立连接,则为SocketTimeoutException。 有关connect方法和设置连接参数的详细信息here