当前位置: 首页 > 知识库问答 >
问题:

HttpURLConnection如何获取其inputStream实例?

轩辕涵亮
2023-03-14

我很好奇HttpURLConnection是如何获取连接的输入流的。我检查了父抽象类URLConnection的实现并找到了方法

 /**
     * Returns an {@code InputStream} for reading data from the resource pointed by
     * this {@code URLConnection}. It throws an UnknownServiceException by
     * default. This method must be overridden by its subclasses.
     *
     * @return the InputStream to read data from.
     * @throws IOException
     *             if no InputStream could be created.
     */
    public InputStream getInputStream() throws IOException {
        throw new UnknownServiceException("Does not support writing to the input stream");
    }

>

  • 扩展URL连接的HttpURLConnection不会重写此方法。所以想知道输入流引用是如何获得的?

    与此相关的事情……超文本传输协议请求到底什么时候从客户端到服务器?是在调用getInputStream()的时候?还是在调用openConnection()的时候?

    提前致谢 AK

  • 共有1个答案

    汤承允
    2023-03-14

    如果您打印运行时类型是应用程序连接对象的类型,它将是组织类型。这就是你实现的获取输入流()的地方。

    作为参考,如果要在 Oracle JRE 中打印同一对象的运行时类型,则运行时类型将为

    注意:我首先列出了Android版本,因为该问题以前被标记为Android问题。

     类似资料:
    • 问题内容: 如何从BufferedImage对象获取InputStream?我尝试了这个,但是ImageIO.createImageInputStream()总是返回NULL 图片缩略图已正确生成,因为我可以成功将 bigImage绘制 到 JPanel 。 谢谢。 问题答案: 如果您尝试将图像保存到文件,请尝试: 如果您只想读取字节,请尝试执行写调用,但将其传递给ByteArrayOutputS

    • 问题内容: 我想从java.io.InputStream读取超时。显然,执行此操作的正确方法是使用java.nio.channels.SelectableChannel和java.nio.channels.Selector。不幸的是,目前尚不清楚如何从InputStream转到SelectableChannel。 InputStream来自非常规来源-http://java.sun.com/pro

    • 问题内容: 我想从流中获取编码。 第一种方法-使用InputStreamReader。 但是它总是返回OS编码。 输出:GBK 第二种方法-使用UniversalDetector。 但是它总是返回null。 输出:空 我怎样才能正确?:( 问题答案: 让我们恢复情况: InputStream传送字节 *阅读器以某种编码传递字符 新的InputStreamReader(inputStream)使用操

    • 问题内容: 我正在使用URL类从中读取InputStream。有什么我可以使用RestTemplate的方法吗? 我怎样才能 用,而不是使用? 问题答案: 您不应该直接获得。旨在封装处理响应(和请求)内容。它的优势在于处理所有IO,并为您提供现成的Java对象。 的一位原始作者Brian Clozel 表示: 并不意味着流响应主体;它的合同不允许这样做,而且已经存在了很长时间,以至于在不中断许多应

    • 我使用URL类从中读取InputStream。有什么方法可以使用RestTemplate实现这一点吗? 如何使用RestTemplate而不是使用URL来获取InputStream?

    • 我使用的是改装版2.0b2。收到响应后,我尝试通过以下方式从响应中获取InputStream: 但是这个应用程序一直在扔: 尽管回复正确。我到底做错了什么?