java中的HttpsURLConnection抽象类

一、概述

该类位于javax.net.ssl包下,类声明:public abstract class
HttpsURLConnection extends
HttpURLConnection

类层次结构:

java.lang.Object
  java.net.URLConnection
      java.net.HttpURLConnection
          javax.net.ssl.HttpsURLConnection

HttpsURLConnection 扩展 HttpURLConnection,支持各种特定于 https 功能。

此类使用 HostnameVerifierSSLSocketFactory。为这两个类都定义了默认实现。但是,可以根据每个类(静态的)或每个实例来替换该实现。所有新
HttpsURLConnection 实例在创建时将被分配“默认的”静态值,通过在连接前调用每个实例适当的 set 方法可以重写这些值。

二、字段

protected HostnameVerifier hostnameVerifier  此对象的 hostnameVerifier

三、构造方法
protected HttpsURLConnection(URL url)  使用指定的 URL 创建 HttpsURLConnection

四、方法
1、public abstract String getCipherSuite()  返回在此连接上使用的密码套件。
抛出: IllegalStateException - 如果在连接建立前调用此方法。
2、public abstract Certificate[] getLocalCertificates() 返回握手期间发送给服务器的证书。
注:仅当使用基于证书的密码套件时此方法才有用。 当在一次握手中有多个证书可供使用时,实现选择它认为是“最好的”可用证书链,并把它传输到另一方。此方法允许调用者知道实际发送的证书链。
返回:证书的有序数组,客户端的证书在前,后跟所有证书颁发机构。如果没有发送任何证书,则返回 null。
抛出: IllegalStateException - 如果在连接建立前调用此方法。
3、public abstract Certificate[] getServerCertificates() throws SSLPeerUnverifiedException 返回服务器的证书链,它是作为定义会话的一部分而建立的。
注:仅当使用基于证书的密码套件时才可以使用此方法;将它与非基于证书的密码套件(如 Kerberos)一起使用将抛出 SSLPeerUnverifiedException。
返回:服务器证书的有序数组,同位体的证书在前,后跟所有证书颁发机构。
抛出: SSLPeerUnverifiedException - 如果没有验证同位体。
IllegalStateException - 如果在连接建立前调用此方法。
4、public Principal getPeerPrincipal() throws SSLPeerUnverifiedException 返回服务器的主体,它是作为定义会话的一部分而建立的。
注:子类应重写此方法。如果没有重写此方法,则对于基于证书的密码套件,它将默认返回服务器终端实体证书的 X500Principal,对于非基于证书的密码套件(如 Kerberos),则抛出 SSLPeerUnverifiedException。
返回:服务器的主体。返回基于 X509 的密码套件的终端实体证书的 X500Principal,以及 Kerberos 的密码套件的 KerberosPrincipal。
抛出: SSLPeerUnverifiedException - 如果没有验证同位体 
IllegalStateException - 如果在连接建立前调用此方法。
5、public Principal getLocalPrincipal() 返回握手期间发送到服务器的主体。
注:子类应重写此方法。如果没有重写此方法,则对于基于证书的密码套件,它将默认返回发送到服务器的终端实体证书的 X500Principal,对于非基于证书的密码套件(如 Kerberos),则返回 null。
返回:发送到服务器的主体。返回基于 X509 的密码套件的终端实体证书的 X500Principal,以及 Kerberos 的密码套件的 KerberosPrincipal。如果没有发送任何主体,则返回 null。
抛出: IllegalStateException - 如果在连接建立前调用此方法。
6、public static void setDefaultHostnameVerifier(HostnameVerifier v) 设置此类的新实例所继承的默认 HostnameVerifier
如果不调用此方法,则默认的 HostnameVerifier 假定连接不应该被允许。
参数:v - 默认的主机名校验器
抛出: IllegalArgumentException - 如果 HostnameVerifier 参数为 null。
SecurityException - 如果安全管理器存在并且其 checkPermission 方法不允许 SSLPermission("setHostnameVerifier") 7、public static HostnameVerifier getDefaultHostnameVerifier() 获取此类的新实例所继承的默认 HostnameVerifier。 
8、public void setHostnameVerifier(HostnameVerifier v) 设置此实例的 HostnameVerifier。 
此类的新实例继承由 setDefaultHostnameVerifier 设置的默认静态主机名校验器。调用此方法会替换此对象的 HostnameVerifier。 
参数:v - 主机名校验器
抛出: IllegalArgumentException - 如果 HostnameVerifier 参数为 null。
9、public HostnameVerifier getHostnameVerifier() 获取此实例适当的 HostnameVerifier(主机名校验器)。 
10、public static void setDefaultSSLSocketFactory(SSLSocketFactory sf) 设置此类的新实例所继承的默认 SSLSocketFactory
当为安全 https URL 连接创建套接字时使用套接字工厂。
参数:sf - 默认的 SSL 套接字工厂
抛出: IllegalArgumentException - 如果 SSLSocketFactory 参数为 null。
SecurityException - 如果安全管理器存在并且其 checkSetFactory 方法不允许指定套接字工厂。
11、public static SSLSocketFactory getDefaultSSLSocketFactory() 获取此类的新实例所继承的默认静态 SSLSocketFactory
当为安全 https URL 连接创建套接字时使用套接字工厂。
12、public void setSSLSocketFactory(SSLSocketFactory sf) 设置当此实例为安全 https URL 连接创建套接字时使用的 SSLSocketFactory。 
此类的新实例继承由 setDefaultSSLSocketFactory 设置的默认静态 SSLSocketFactory。调用此方法会替换此对象的 SSLSocketFactory。 
参数:sf - SSL 套接字工厂 
抛出: IllegalArgumentException - 如果 SSLSocketFactory 参数为 null。
13、public SSLSocketFactory getSSLSocketFactory() 获取为安全 https URL 连接创建套接字时使用的 SSL 套接字工厂。
时间: 2024-12-29 11:58:15

java中的HttpsURLConnection抽象类的相关文章

Java中接口和抽象类的比较

Java中接口和抽象类的比较-2013年5月写的读书笔记摘要 1. 概述 接口(Interface)和抽象类(abstract class)是 Java 语言中支持抽象类的两种机制,是Java程序设计使用多态性的基础[[1]].(在面向对象语言中,接口的多种不同的实现方式即为多态.多态性是允许你将父对象设置成为和一个或更多的他的子对象的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自"Delphi4编程技术内幕").简单的说,就是一句话:允许将子类类型的

Java中接口和抽象类的比較

Java中接口和抽象类的比較-2013年5月写的读书笔记摘要 1. 概述 接口(Interface)和抽象类(abstract class)是 Java 语言中支持抽象类的两种机制,是Java程序设计使用多态性的基础[[1]]. (在面向对象语言中,接口的多种不同的实现方式即为多态. 多态性是同意你将父对象设置成为和一个或很多其它的他的子对象的技术.赋值之后.父对象就能够依据当前赋值给它的子对象的特性以不同的方式运作(摘自"Delphi4编程技术内幕"). 简单的说.就是一句话:同意将

Java中接口和抽象类的区别与联系

Java中接口和抽象类的区别与联系 1. 抽象类: (1).概念:抽象类是对一种事物的抽象,即对类抽..抽象类是对整个类整体进行抽象,包括属性.行为.Java抽象类和Java接口一样,都用来声明一个新的类型.并且作为一个类型的等级结构的起点. (2).格式: public abstract class abstractDemo{ /**属性*/ private String name; /**方法*/ public abstract void fun(); } (3).说明: A:抽象类中不一定

java中接口和抽象类的区别

抽象类: 1.用abstract表示 2.里面有一个或多个抽象方法,在方法前加abstract,抽象类中也可以没有抽象方法 3.抽象类用extends继承,并且必须重写抽象方法 接口 1.用implement表示 2.接口是极度抽象的类,所有方法都是抽象的,都需要进行重写 接口的作用:解决java中的单继承问题,一个类可以实现多个接口,但只能有一个父类 共同点:都不能被实例化

浅谈java中接口与抽象类之间的异同

刚学习java的时候,总觉得接口和抽象类很像,但又说不上具体有什么区别.今天静下来,翻翻书,查查资料,做个小结.首先举两个例子,看看interface和abstract class 在"外形"上有啥异同. 1.先看一下抽象类: abstract class Person{ private String name; private Person(String n) { name=n; } public abstract String getDescription(); public St

java中接口与抽象类的区别

接口和抽象类的共同特征如下: 接口和抽象类都不能被实例化,位于继承树的顶端,用于被其他类实现和继承. 接口和抽象类都可以包含抽象的方法,实现接口的类或者继承抽象类的类都必须实现这些抽象的方法. 区别:二者的主要区别在于他们存在的目的不同,即设计的目的不同. 接口作为系统与外界交互的窗口,接口体现的是一种规范. 抽象类作为系统中多个子类的共同父类,抽象类体现的是一种模板式设计. 我们最关注的还是二者用法的区别: (1)接口里只能包含抽象方法和默认方法,不能实现普通方法.抽象类完全可以包含普通方法.

java中的Buffer抽象类

一.概述 Buffer是一个抽象类,位于java.nio包下,类声明如下:public abstract classBuffer extends Object Buffer是一个用于特定基本类型数据的容器. 缓冲区是特定基本类型元素的线性有限序列.除内容外,缓冲区的基本属性还包括容量.限制和位置: 缓冲区的容量 是它所包含的元素的数量.缓冲区的容量不能为负并且不能更改. 缓冲区的限制 是第一个不应该读取或写入的元素的索引.缓冲区的限制不能为负,并且不能大于其容量. 缓冲区的位置 是下一个要读取或

Java中多态、抽象类和接口

1:final关键字(掌握) (1)是最终的意思,可以修饰类,方法,变量. (2)特点: A:它修饰的类,不能被继承. B:它修饰的方法,不能被重写. C:它修饰的变量,是一个常量. (3)面试相关: A:局部变量 a:基本类型 值不能发生改变 b:引用类型 地址值不能发生改变,但是对象的内容是可以改变的 B:初始化时机 a:只能初始化一次. b:常见的给值 定义的时候.(推荐) 构造方法中. 2:多态(掌握) (1)同一个对象在不同时刻体现出来的不同状态. (2)多态的前提: A:有继承或者实

JAVA中接口与抽象类

抽象类总结 抽象类的概念:是使用关键字abstract修饰的类就是抽象类: 抽象类的产生:当多个不能相互继承的类具有相同的功能时,就需要将共同的信息向上抽取,放到公共的父类中:如果公共的父类只能描述所有子类都具有的功能,但描述不清功能的具体实现,就需要将该函数定义为抽象的,使用关键字abstract修饰:如果一个类中出现了抽象的函数,说明这个类也是不具体的,应该定义为抽象类,使用abstract修饰: 抽象类的特点: 抽象类不能实例化: 抽象类中的抽象函数必须由子类去实现,否则子类也是抽象类: