Java HttpURLConnection.getReadTimeout()/HttpURLConnection.getConnectionTimeout()共-1个

Java HttpURLConnection.getReadTimeout()/HttpURLConnection.getConnectionTimeout()共-1个,java,httpurlconnection,weblogic12c,connection-timeout,Java,Httpurlconnection,Weblogic12c,Connection Timeout,我试图确定Java HttpURLConnection对象上当前的readTimeout和connectionTimeout是什么。在下面的日志记录语句中,它们都返回了带的-1: private InputStream getSomethingImportant(final String letterId, final String documentId, HttpURLConnection connection) throws IOException {

我试图确定Java HttpURLConnection对象上当前的readTimeout和connectionTimeout是什么。在下面的日志记录语句中,它们都返回了带的-1:

    private InputStream getSomethingImportant(final String letterId, final String documentId,
            HttpURLConnection connection) throws IOException {

        InputStream pdfStream = null;

        final String url = this.getBaseURL() + "/letters/" + letterId + "/documents/" + documentId;

        connection = RequestResponseUtil.initializeRequest(url, "GET", this.getAuthenticationHeader(), true, MediaType.APPLICATION_PDF_VALUE);

        LOG.info("ConnectionTimeout is: {}", connection.getConnectTimeout());
        LOG.info("ReadTimeout is: {}", connection.getReadTimeout());

        // ...other non-relevant code...
}

    public static HttpURLConnection initializeRequest(final String url, final String method,
            final String httpAuthHeader, final boolean multiPartFormData, final String responseType) {

        HttpURLConnection conn = null;

        try {
            conn = (HttpURLConnection) new URL(url).openConnection();
            conn.setRequestMethod(method);
            conn.setRequestProperty("X-Something-Authentication", httpAuthHeader);
            conn.setRequestProperty("Accept", responseType);
            if (multiPartFormData) {
                conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=BOUNDARY");
                conn.setDoOutput(true);
            }
            else {
                conn.setRequestProperty("Content-Type", "application/xml");
            }
        }
        catch (final MalformedURLException e) {
            throw new CustomException(e);
        }
        catch (final IOException e) {
            throw new CustomException(e);
        }
        return conn;

    }
上的JavaDocs和上的JavaDocs都将0列为返回选项,但没有提到-1。我该如何解释呢

此外,我使用的url是有效的,并且我正在成功返回一个
InputStream

最后,我使用的是OracleJDK1.8.077。而且,值得注意的是,当我实际打印运行时使用的
conn
类时,它是
weblogic.net.http.SOAPHttpsURLConnection
(我使用的是weblogic 12.2)


谢谢。

您能否发布最简单的代码来重现这一点。我只是尝试了一下,使用OracleJDK8得到了两个超时值的0;我在原始问题中添加了更多的代码上下文。谢谢你的帮助!除了一些额外的设置,这看起来像我做的。当您运行最小的示例:,仍然是两次-1时,您会得到什么?我的jdk是1.8.0_112,我得到的类是sun.net.www.protocol.https.HttpsURLConnectionImpl。我运行了你的示例,结果有点出乎意料。对于connectionTimeout和readTimeout,我仍然收到-1。我还打印了JDK版本并接收
1.8.0_77
。我收到该类的
weblogic.net.http.SOAPHttpsURLConnection
。有趣的是,当我查看JavaDocs时,它只说它
覆盖了类URLConnection中的getReadTimeout方法,但实际上并没有给出完整的实现:/好吧,如果你的IDE中安装了反编译器,你可以看看源代码,看看它们是怎么做的。显然,它们会覆盖它并使用不同的默认值。