我实例化了一个 netty 4(使用 netty-all-4.0.9.jar)服务,并通过添加 3 个 ChannelHandler 对象来初始化通道:
pipeline.addLast("decoder", new HttpRequestDecoder());
pipeline.addLast("encoder", new HttpResponseEncoder());
pipeline.addLast("handler", new MyHandler());
当测试 w/ curlHTTP PUT
将文件发送到我的服务器时,我发现MyHandler.channelRead
没有立即调用带有标头的请求Expect: 100-continue
(curl 正在等待服务器回复100 Continue
. 这意味着我的处理程序无法回复HTTP/1.1 100 Continue
以告诉客户端(curl)立即启动文件的实际上传。
有趣的是,进一步调试这个问题telnet
表明,channelRead
一旦上传了实际的正文(在收到第一个字节之后),就会立即调用 a。
关于如何正确处理PUT
带有“期望:100-继续”标头的请求以100 Continue
立即触发响应的任何提示?