public class HttpPostRequestEncoder extends java.lang.Object implements ChunkedInput<HttpContent>
根据RFC 7231,POST,PUT和OPTIONS允许有一个主体。 此编码器将广泛支持除TRACE以外的所有方法,因为RFC有关GET,DELETE,HEAD和CONNECT的注释:(用这些方法之一替代XXX)
“XXX请求消息中的有效载荷没有定义的语义;在XXX请求中发送有效内容主体可能会导致一些现有的实现拒绝请求。”
相反,对于TRACE方法,RFC说:
“客户端绝不能在TRACE请求中发送消息正文。”
Modifier and Type | Class and Description |
---|---|
static class |
HttpPostRequestEncoder.EncoderMode
用于编码表单数据的不同模式。
|
static class |
HttpPostRequestEncoder.ErrorDataEncoderException
编码时发生错误时发生异常
|
Constructor and Description |
---|
HttpPostRequestEncoder(HttpDataFactory factory, HttpRequest request, boolean multipart) |
HttpPostRequestEncoder(HttpDataFactory factory, HttpRequest request, boolean multipart, java.nio.charset.Charset charset, HttpPostRequestEncoder.EncoderMode encoderMode) |
HttpPostRequestEncoder(HttpRequest request, boolean multipart) |
Modifier and Type | Method and Description |
---|---|
void |
addBodyAttribute(java.lang.String name, java.lang.String value)
在Name中添加一个简单的属性名称= Value
|
void |
addBodyFileUpload(java.lang.String name, java.io.File file, java.lang.String contentType, boolean isText)
将文件添加为FileUpload
|
void |
addBodyFileUpload(java.lang.String name, java.lang.String filename, java.io.File file, java.lang.String contentType, boolean isText)
将文件添加为FileUpload
|
void |
addBodyFileUploads(java.lang.String name, java.io.File[] file, java.lang.String[] contentType, boolean[] isText)
添加一系列与一个File参数关联的文件
|
void |
addBodyHttpData(InterfaceHttpData data)
将InterfaceHttpData添加到Body列表
|
void |
cleanFiles()
清理当前请求的所有HttpDatas(在磁盘上)。
|
void |
close()
释放与输入相关的资源。
|
HttpRequest |
finalizeRequest()
通过在请求中准备标题完成请求,并返回准备发送的请求。
|
java.util.List<InterfaceHttpData> |
getBodyListAttributes()
这个getMethod从正文部分返回一个所有InterfaceHttpData的List。
|
boolean |
isChunked() |
boolean |
isEndOfInput()
返回
true 当且仅当数据流中没有剩余数据并且数据流已达到其结尾时。
|
boolean |
isMultipart()
如果此请求是多部分请求,则为真
|
long |
length()
返回输入的长度。
|
long |
progress()
返回当前传输进度。
|
HttpContent |
readChunk(ByteBufAllocator allocator)
返回下一个可用的HttpChunk。
|
HttpContent |
readChunk(ChannelHandlerContext ctx)
已过时。
|
void |
setBodyHttpDatas(java.util.List<InterfaceHttpData> datas)
设置Body HttpDatas列表
|
public HttpPostRequestEncoder(HttpRequest request, boolean multipart) throws HttpPostRequestEncoder.ErrorDataEncoderException
request
- 编码请求
multipart
- 如果FORM是ENCTYPE =“multipart / form-data”
java.lang.NullPointerException
- 请求
HttpPostRequestEncoder.ErrorDataEncoderException
- 如果请求是TRACE
public HttpPostRequestEncoder(HttpDataFactory factory, HttpRequest request, boolean multipart) throws HttpPostRequestEncoder.ErrorDataEncoderException
factory
- 用于创建InterfaceHttpData的工厂
request
- 编码请求
multipart
- 如果FORM是ENCTYPE =“multipart / form-data”
java.lang.NullPointerException
- 请求和工厂
HttpPostRequestEncoder.ErrorDataEncoderException
- 如果请求是TRACE
public HttpPostRequestEncoder(HttpDataFactory factory, HttpRequest request, boolean multipart, java.nio.charset.Charset charset, HttpPostRequestEncoder.EncoderMode encoderMode) throws HttpPostRequestEncoder.ErrorDataEncoderException
factory
- 用于创建InterfaceHttpData的工厂
request
- 编码请求
multipart
- 如果FORM是ENCTYPE =“multipart / form-data”
charset
- 默认使用的字符集
encoderMode
- 编码器使用的模式。
详情请参阅HttpPostRequestEncoder.EncoderMode
。
java.lang.NullPointerException
- 用于请求或字符集或工厂
HttpPostRequestEncoder.ErrorDataEncoderException
- 如果请求是TRACE
public void cleanFiles()
public boolean isMultipart()
public java.util.List<InterfaceHttpData> getBodyListAttributes()
public void setBodyHttpDatas(java.util.List<InterfaceHttpData> datas) throws HttpPostRequestEncoder.ErrorDataEncoderException
java.lang.NullPointerException
- 用于数据
HttpPostRequestEncoder.ErrorDataEncoderException
- 如果编码有误或完成已完成
public void addBodyAttribute(java.lang.String name, java.lang.String value) throws HttpPostRequestEncoder.ErrorDataEncoderException
name
- 参数的名称
value
- 参数的值
java.lang.NullPointerException
- 名称
HttpPostRequestEncoder.ErrorDataEncoderException
- 如果编码错误或已完成定稿
public void addBodyFileUpload(java.lang.String name, java.io.File file, java.lang.String contentType, boolean isText) throws HttpPostRequestEncoder.ErrorDataEncoderException
name
- 参数的名称
file
- 要上传的文件(如果不是多部分模式,则只包含文件名)
contentType
- 文件的关联内容类型
isText
- 如果此文件应以文本格式传输(否则为二进制)
java.lang.NullPointerException
- 用于名称和文件
HttpPostRequestEncoder.ErrorDataEncoderException
- 如果编码错误或者finalize已完成
public void addBodyFileUpload(java.lang.String name, java.lang.String filename, java.io.File file, java.lang.String contentType, boolean isText) throws HttpPostRequestEncoder.ErrorDataEncoderException
name
- 参数的名称
file
- 要上传的文件(如果不是多部分模式,则只包含文件名)
filename
- 用于该文件部分的文件名,空字符串将被编码器忽略
contentType
- 文件的关联内容类型
isText
- 如果此文件应以文本格式传输(否则为二进制)
java.lang.NullPointerException
- 用于名称和文件
HttpPostRequestEncoder.ErrorDataEncoderException
- 如果编码错误或者finalize已经完成
public void addBodyFileUploads(java.lang.String name, java.io.File[] file, java.lang.String[] contentType, boolean[] isText) throws HttpPostRequestEncoder.ErrorDataEncoderException
name
- 参数的名称
file
- 文件数组
contentType
- 与每个文件关联的内容类型数组
isText
- 每个文件的isText属性(False含义二进制模式)的数组
java.lang.IllegalArgumentException
- 如果数组的大小不同,也会抛出
HttpPostRequestEncoder.ErrorDataEncoderException
- 如果编码错误或完成已完成
public void addBodyHttpData(InterfaceHttpData data) throws HttpPostRequestEncoder.ErrorDataEncoderException
java.lang.NullPointerException
- 用于数据
HttpPostRequestEncoder.ErrorDataEncoderException
- 如果编码错误或者finalize已完成
public HttpRequest finalizeRequest() throws HttpPostRequestEncoder.ErrorDataEncoderException
HttpPostRequestEncoder.ErrorDataEncoderException
- 如果编码错误或者finalize已经完成
public boolean isChunked()
public void close() throws java.lang.Exception
ChunkedInput
close
在界面
ChunkedInput<HttpContent>
java.lang.Exception
@Deprecated public HttpContent readChunk(ChannelHandlerContext ctx) throws java.lang.Exception
readChunk
接口
ChunkedInput<HttpContent>
ctx
-它提供了一个上下文ByteBufAllocator
如果缓冲区分配是必要的。
null
如果流中没有剩余数据。
请注意, null
并不一定意味着该流已到达其末端。
在缓慢的流中,下一个块可能暂时不可用。
java.lang.Exception
public HttpContent readChunk(ByteBufAllocator allocator) throws java.lang.Exception
readChunk
在界面
ChunkedInput<HttpContent>
allocator
- ByteBufAllocator
如果缓冲区分配是必要的。
HttpPostRequestEncoder.ErrorDataEncoderException
- 如果编码出错
java.lang.Exception
public boolean isEndOfInput() throws java.lang.Exception
ChunkedInput
true
当且仅当数据流中没有剩余数据并且数据流已达到其结尾时。
isEndOfInput
在界面
ChunkedInput<HttpContent>
java.lang.Exception
public long length()
ChunkedInput
length
在界面
ChunkedInput<HttpContent>
public long progress()
ChunkedInput
progress
接口
ChunkedInput<HttpContent>
Copyright © 2008–2018 The Netty Project. All rights reserved.