- java.lang.Object
-
- javax.xml.ws.spi.http.HttpExchange
-
public abstract class HttpExchange extends Object
此类封装了收到的HTTP请求和在一个交换中生成的响应。 它提供了从客户端检查请求以及构建和发送响应的方法。必须关闭
HttpExchange
以释放或重用基础资源。 未能关闭交易所的效果未定。- 从以下版本开始:
- 1.7,JAX-WS 2.2
-
-
Field Summary
Fields Modifier and Type Field 描述 static String
REQUEST_CIPHER_SUITE
标准属性:通过HTTPS接收请求时的密码套件值static String
REQUEST_KEY_SIZE
标准属性:通过HTTPS接收请求时算法的位大小static String
REQUEST_X509CERTIFICATE
标准属性:与请求相关联的SSL证书(如果有)
-
构造方法摘要
构造方法 Constructor 描述 HttpExchange()
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 abstract void
addResponseHeader(String name, String value)
添加具有给定名称和值的响应头。abstract void
close()
必须调用这个结束交换。abstract Object
getAttribute(String name)
返回与此HttpExchange
相关联的属性。abstract Set<String>
getAttributeNames()
提供与此HttpExchange
相关联的所有属性名称。abstract String
getContextPath()
返回应用程序中所有端点的上下文路径。abstract HttpContext
getHttpContext()
返回此交换的HttpContext
。abstract InetSocketAddress
getLocalAddress()
返回收到请求的未解决的本地地址。abstract String
getPathInfo()
返回Web服务路径后面的额外路径信息,但在请求URI中的查询字符串之前,将以“/”字符开头。abstract String
getProtocol()
从请求中以 协议/ majorVersion.minorVersion的形式返回协议串。abstract String
getQueryString()
返回路径后请求URI中包含的查询字符串。abstract InetSocketAddress
getRemoteAddress()
返回调用此请求的远程实体的未解析地址。abstract InputStream
getRequestBody()
返回可以从中读取请求主体的流。abstract String
getRequestHeader(String name)
返回指定请求标头的值。abstract Map<String,List<String>>
getRequestHeaders()
返回包含此请求中包含的HTTP标头的不可变地图。abstract String
getRequestMethod()
获取HTTP请求方法abstract String
getRequestURI()
将请求的URI的一部分从协议名称返回到HTTP请求的第一行中的查询字符串。abstract OutputStream
getResponseBody()
返回响应主体必须写入的流。abstract Map<String,List<String>>
getResponseHeaders()
返回一个可变地图,可以存储HTTP响应标头,哪个将作为此响应的一部分进行传输。abstract String
getScheme()
返回用于创建此请求的方案的名称,例如:http或https。abstract Principal
getUserPrincipal()
返回Principal
,表示此身份验证的用户HttpExchange
。abstract boolean
isUserInRole(String role)
指示经过身份验证的用户是否包含在指定的逻辑“角色”中。abstract void
setStatus(int status)
设置响应的HTTP状态代码。
-
-
-
字段详细信息
-
REQUEST_CIPHER_SUITE
public static final String REQUEST_CIPHER_SUITE
标准属性:通过HTTPS接收请求时的密码套件值类型:字符串
- 另请参见:
- Constant Field Values
-
REQUEST_KEY_SIZE
public static final String REQUEST_KEY_SIZE
标准属性:通过HTTPS接收请求时算法的位大小类型:整数
- 另请参见:
- Constant Field Values
-
REQUEST_X509CERTIFICATE
public static final String REQUEST_X509CERTIFICATE
标准属性:与请求相关联的SSL证书(如果有)类型:java.security.cert.X509Certificate []将此数组的顺序定义为以信任的升序排列。 链中的第一个证书是由客户端设置的一个证书,接下来是用于验证第一个证书的证书,依此类推。
- 另请参见:
- Constant Field Values
-
-
方法详细信息
-
getRequestHeaders
public abstract Map<String,List<String>> getRequestHeaders()
返回包含此请求中包含的HTTP标头的不可变地图。 该地图中的键将是标题名称,而这些值将是包含每个包含的值的字符串列表(对于多次列出的标题,或者是接受逗号分隔的值列表)单线)。 在这两种情况下,标题名称的值将按照请求中包含的顺序进行显示。地图中的键不区分大小写。
- 结果
- 一个不可变的地图,可以用来访问请求头
-
getRequestHeader
public abstract String getRequestHeader(String name)
返回指定请求标头的值。 如果请求没有包含指定名称的头,则此方法返回null。 如果有多个名称相同的头,则此方法返回请求中的第一个头。 标题名称不区分大小写。 这是一个获取标题的方法(而不是使用getRequestHeaders()
)。- 参数
-
name
- 请求标头的名称 - 结果
- 返回请求的标头的值,如果请求没有该名称的标题,则返回null
-
getResponseHeaders
public abstract Map<String,List<String>> getResponseHeaders()
返回一个可变地图,可以存储HTTP响应标头,哪个将作为此响应的一部分进行传输。 地图中的键将是标题名称,而这些值必须是包含应包含多次(按照它们应包含的顺序)的每个值的字符串列表。地图中的键不区分大小写。
- 结果
- 一个可以用来设置响应头的可变地图。
-
addResponseHeader
public abstract void addResponseHeader(String name, String value)
- 参数
-
name
- 标题的名称 -
value
- 附加标头值。 如果它包含八位位组字符串,则应根据RFC 2047(http://www.ietf.org/rfc/rfc2047.txt)进行编码, - 另请参见:
-
getResponseHeaders()
-
getRequestURI
public abstract String getRequestURI()
将请求的URI的一部分从协议名称返回到HTTP请求的第一行中的查询字符串。 容器不解码此字符串。- 结果
- 请求URI
-
getContextPath
public abstract String getContextPath()
返回应用程序中所有端点的上下文路径。 该路径是请求URI的一部分,指示请求的上下文。 上下文路径始终位于请求URI中。 路径以“/”字符开头,但不以“/”字符结尾。 如果此方法返回“”,则该请求用于默认上下文。 容器不解码此字符串。上下文路径用于计算端点地址。 见
HttpContext.getPath()
- 结果
- 应用程序中所有端点的上下文路径
- 另请参见:
-
HttpContext.getPath()
-
getRequestMethod
public abstract String getRequestMethod()
获取HTTP请求方法- 结果
- 请求方式
-
getHttpContext
public abstract HttpContext getHttpContext()
返回此交易所的HttpContext
。 容器将请求与关联的Endpoint的HttpContext进行匹配- 结果
- 这个交换的HttpContext
-
close
public abstract void close() throws IOException
必须调用这个结束交换。 容器处理关闭请求和响应流。 这必须被调用,以便容器可以释放或重用基础资源。- 异常
-
IOException
- 如果有任何i / o错误
-
getRequestBody
public abstract InputStream getRequestBody() throws IOException
返回可以从中读取请求主体的流。 对此方法的多次调用将返回相同的流。- 结果
- 可以从中读取请求主体的流。
- 异常
-
IOException
- 请求处理中是否有任何I / O错误
-
getResponseBody
public abstract OutputStream getResponseBody() throws IOException
- 结果
- 响应主体被写入的流
- 异常
-
IOException
- 响应处理期间是否有任何I / O错误
-
setStatus
public abstract void setStatus(int status)
设置响应的HTTP状态代码。在调用
getResponseBody()
之前必须调用此方法。- 参数
-
status
- 要发送的响应代码 - 另请参见:
-
getResponseBody()
-
getRemoteAddress
public abstract InetSocketAddress getRemoteAddress()
返回调用此请求的远程实体的未解析地址。- 结果
- 调用者的InetSocketAddress
-
getLocalAddress
public abstract InetSocketAddress getLocalAddress()
返回收到请求的未解决的本地地址。- 结果
- 本地接口的InetSocketAddress
-
getProtocol
public abstract String getProtocol()
从请求中以协议/ majorVersion.minorVersion的形式返回协议串。 例如,“HTTP / 1.1”- 结果
- 来自请求的协议串
-
getScheme
public abstract String getScheme()
返回用于创建此请求的方案的名称,例如:http或https。- 结果
- 用于提出此请求的方案的名称
-
getPathInfo
public abstract String getPathInfo()
返回Web服务路径后面的额外路径信息,但在请求URI中的查询字符串之前,将以“/”字符开头。- 结果
-
解码Web服务的额外路径信息。
它是在Web服务路径之后但在请求URI
null
的查询字符串之前的路径,如果请求URI中没有额外的路径
-
getQueryString
public abstract String getQueryString()
返回路径后请求URI中包含的查询字符串。- 结果
-
未解码的请求URI的查询字符串,如果请求URI没有请求URI,
null
-
getAttribute
public abstract Object getAttribute(String name)
返回与此HttpExchange
相关联的属性。 JAX-WS处理程序和端点可以通过MessageContext
访问该属性。Servlet容器必须公开
MessageContext.SERVLET_CONTEXT
,MessageContext.SERVLET_REQUEST
,并MessageContext.SERVLET_RESPONSE
为属性。如果容器使用HTTPS接收到请求,则必须将以下信息作为属性公开。 这些属性是
REQUEST_CIPHER_SUITE
和REQUEST_KEY_SIZE
。 如果存在与请求相关联的SSL证书,则必须使用REQUEST_X509CERTIFICATE
进行公开- 参数
-
name
- 属性名称 - 结果
-
属性值,如果属性不存在,
null
-
getAttributeNames
public abstract Set<String> getAttributeNames()
提供与此HttpExchange
相关联的所有属性名称。- 结果
- 所有属性名称的集合
- 另请参见:
-
getAttribute(String)
-
getUserPrincipal
public abstract Principal getUserPrincipal()
返回Principal
,表示此身份验证的用户HttpExchange
。- 结果
-
认证用户的
null
如果没有认证,null
-
isUserInRole
public abstract boolean isUserInRole(String role)
指示经过身份验证的用户是否包含在指定的逻辑“角色”中。- 参数
-
role
- 指定角色的名称 - 结果
-
如果提出此请求的用户属于给定角色,
true
-
-