0

我很好奇 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");
    }
  1. 扩展 URLConnection 的 HttpURLConnection 不会覆盖此方法。那么想知道如何获得输入流引用?

  2. 与此相关的东西.... http 请求到底是什么时候从客户端发送到服务器的?是在您调用 getInputStream() 时吗?或者一旦调用 openConnection() ?

提前感谢 AK

4

1 回答 1

3

如果您打印HttpURLConnection对象的运行时类型,它将是org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImplAndroid 上的类型。那就是您的实施所在getInputStream()

作为参考,如果您要在 Oracle JRE 中打印同一对象的运行时类型,则运行时类型将是sun.net.www.protocol.http.HttpURLConnection

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

于 2013-08-06T00:18:44.320 回答