zoukankan      html  css  js  c++  java
  • java中的URLConnection

    *URLConnection是个抽象类,它有两个直接子类分别是HttpURLConnection和JarURLConnection。另外一个重要的类是URL,通常URL可以通过传给构造器一个String类型的参数来生成一个指向特定地址的URL实例。

    *url.openConnection()方法返回的肯定是这两个子类中的一个,这是java多态性的一种体现

    *按图索骥。。。在eclipse中按几次F3
      1、找到openConnection()方法。
      2、找到URL中的handler实例。注:handler是抽象类URLStreamHandler一个定义了的未实例化类。
      3、handler  =(URLStreamHandler)cls.newInstance();。
      4、cls = cl.loadClass(clsName);
        ①cl为系统类加载器
        ②claName是由前面的sun.security.action.GetPropertyAction等方法组成的。
      5、找不到GetPropertyAction的源代码了,不过猜测clsName指向一个API,这个API至少应该覆盖
        ①、URLConnection的connect方法
        ②、URLStreamHandler的openConnection方法
      注:handlers为handler储存集合,factory为自定义handler。(看到这部分的,可以再探讨下)

    *可以直接把URLConnection强制转化为HTTPURLConnection,这样一来就可以把urlConnection.setDoOutput(true)写成httpURLConnection.setRequestMethod("post"),实际上,后者调用前者。如果非得要使用URLConnection的输入流就必须执行setDoOutput(true)

    *urlConnection.getInputStream()会调用urlConnection.connect()函数。

  • 相关阅读:
    Redis Cluter
    数据库设计范式
    kvm虚拟化
    架构前端
    集群架构
    初识shell编程
    网络知识
    Linux三剑客
    Linux磁盘管理
    高性能异步爬虫
  • 原文地址:https://www.cnblogs.com/weiyinfu/p/5134442.html
Copyright © 2011-2022 走看看