gpt4 book ai didi

java - 使用 URLConnection 访问时连接超时

转载 作者:太空宇宙 更新时间:2023-11-04 12:42:02 24 4
gpt4 key购买 nike

我的代码来自服务器jsp,正在访问客户端计算机中的另一个jsp,这在我的办公室网络中的客户端计算机和服务器之间完美通信,没有任何问题。但是,当我的服务器 jsp 位于外部办公室(另一个网络)并且客户端机器位于我的网络中时,相同的代码在服务器日志中出现连接超时异常。当我通过 ajax 调用连接到客户端计算机时,我能够从客户端获得响应。我的代码如下。有人可以澄清这个问题吗?

服务器jsp中的java代码:

    URL jspUrl = new URL("...../Test.jsp");
URLConnection servletConnection = jspUrl.openConnection();
servletConnection.setDoOutput(true);
servletConnection.setDoInput(true);
servletConnection.setUseCaches(true);
servletConnection.setDefaultUseCaches(true);
servletConnection.setRequestProperty("Content-Type", "application/x-java-serialized-object");
OutputStream outputStream = servletConnection.getOutputStream();
ObjectOutputStream outputToServlet = new ObjectOutputStream(outputStream);
outputToServlet.writeObject(object);
outputToServlet.flush();

InputStream inputStream = servletConnection.getInputStream();
ObjectInputStream outputFromServlet = new ObjectInputStream(inputStream);
readObject = outputFromServlet.readObject();
outputFromServlet.close();
outputToServlet.close();

服务器jsp中正在运行的ajax代码:

       function callAjax
{
if(window.XMLHttpRequest)
{
reqObj=new XMLHttpRequest();
}
else
{
reqObj=new ActiveXObject("Microsoft.XMLHTTP");
}
reqObj.onreadystatechange=processfunction;
reqObj.open("POST","./jspName.jsp?"+Id,false);
reqObj.send(null);
}
function processfunction()
{
try
{
if(reqObj.readyState==4)
{
if(reqObj.status == 200)
{
var responseString = reqObj.responseText;

}
}
}
catch(e)
{
//alert(e);
}

}

最佳答案

首先,请确保您已连接到互联网。然后将连接时间更改为零,即无限:

servletConnection.setConnectTimeout(0);

//Set read time out to zero if required
servletConnection.setReadTimeout(0);

关于java - 使用 URLConnection 访问时连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36741705/

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