gpt4 book ai didi

java - Java 1.5 下 HTTP 连接超时

转载 作者:可可西里 更新时间:2023-11-01 16:41:38 32 4
gpt4 key购买 nike

我已经使用 java.net.HttpURLConnection 开发了对 Web 服务的简单低级访问。

我需要为连接和读取设置超时,这在 Java 1.6 及更高版本下似乎是可行的,但对于 Java 1.5 我完全不知所措。

是否有任何 HttpURLConnection 的替代品可以满足我的需求?

我现在的代码是这样的:

        oURL = new URL( this.endpoint );
httpCon = (HttpURLConnection)oURL.openConnection();

httpCon.setDoOutput(true);
httpCon.setDoInput(true);

httpCon.setConnectTimeout( this.connect_timeout );
httpCon.setReadTimeout( this.read_timeout );

httpCon.setRequestMethod("POST");
httpCon.setRequestProperty("Content-type", "text/xml; charset=utf-8");
httpCon.setRequestProperty("SOAPAction", this.endpoint+"#"+req.getOperationName());


reqStream = httpCon.getOutputStream();
reqStream.write( reqXML.getBytes());

一旦我从输出流中读取了响应,我就完成了。但是HttpURLConnection在1.5下的实现好像缺少这两个相关的方法。

最佳答案

我认为您没有使用 JDK 1.5,我在 eclipse 中创建了一个 java (1.5) 项目,它允许我使用这两种方法。

    HttpURLConnection a = (HttpURLConnection)new URL("URL").openConnection();
a.setConnectTimeout(0);
a.setReadTimeout(0);

在方法的描述中它说它是从 1.5 开始的

设置连接超时

Sets a specified timeout value, in milliseconds, to be used when opening a communications link to the resource referenced by this URLConnection. If the timeout expires before the connection can be established, a java.net.SocketTimeoutException is raised. A timeout of zero is interpreted as an infinite timeout.

Some non-standard implementation of this method may ignore the specified timeout. To see the connect timeout set, please call getConnectTimeout().

Parameters: timeout an int that specifies the connect timeout value in milliseconds Throws: IllegalArgumentException - if the timeout parameter is negative Since: 1.5

设置读取超时

Sets the read timeout to a specified timeout, in milliseconds. A non-zero value specifies the timeout when reading from Input stream when a connection is established to a resource. If the timeout expires before there is data available for read, a java.net.SocketTimeoutException is raised. A timeout of zero is interpreted as an infinite timeout.

Some non-standard implementation of this method ignores the specified timeout. To see the read timeout set, please call getReadTimeout().

Parameters: timeout an int that specifies the timeout value to be used in milliseconds Throws: IllegalArgumentException - if the timeout parameter is negative Since: 1.5

您还可以查看来自 oracle 的 API 文档

http://docs.oracle.com/javase/1.5.0/docs/api/java/net/URLConnection.html#setConnectTimeout(int)

http://docs.oracle.com/javase/1.5.0/docs/api/java/net/HttpURLConnection.html

它说 HttpURLConnection 继承自 URLConnection 并且这两个方法是 public 所以它们在 HttpURLConnection 类中.

关于java - Java 1.5 下 HTTP 连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34000133/

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