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.