netty-all-4.1.29.Final.jar
登录
|
io.netty:netty-all:4.1.29.Final
io
netty
internal
example
udt
http
websocketx
upload
HttpUploadClient.java
HttpUploadServer.java
HttpUploadServerHandler.java
HttpUploadServerInitializer.java
HttpUploadClientHandler.java
HttpUploadClientInitializer.java
cors
helloworld
file
snoop
redis
worldclock
proxy
uptime
discard
qotm
stomp
localecho
memcache
securechat
telnet
file
objectecho
spdy
portunification
http2
ocsp
sctp
socksproxy
echo
rxtx
factorial
buffer
bootstrap
util
handler
channel
resolver
META-INF
HttpUploadClientHandler.java
清空
类结构
/* * Copyright 2012 The Netty Project * * The Netty Project licenses this file to you under the Apache License, * version 2.0 (the "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ package io.netty.example.http.upload; import io.netty.channel.
ChannelHandlerContext
; import io.netty.channel.
SimpleChannelInboundHandler
; import io.netty.handler.codec.http.
HttpContent
; import io.netty.handler.codec.http.
HttpUtil
; import io.netty.handler.codec.http.
HttpObject
; import io.netty.handler.codec.http.
HttpResponse
; import io.netty.handler.codec.http.
LastHttpContent
; import io.netty.util.
CharsetUtil
; /** * Handler that just dumps the contents of the response from the server */ public class
HttpUploadClientHandler
extends
SimpleChannelInboundHandler
<
HttpObject
> { private boolean
readingChunks
; @
Override
public void
channelRead0
(
ChannelHandlerContext
ctx
,
HttpObject
msg
) { if (
msg
instanceof
HttpResponse
) {
HttpResponse
response
= (
HttpResponse
)
msg
;
System
.
err
.
println
("STATUS: " +
response
.
status
());
System
.
err
.
println
("VERSION: " +
response
.
protocolVersion
()); if (!
response
.
headers
().
isEmpty
()) { for (
CharSequence
name
:
response
.
headers
().
names
()) { for (
CharSequence
value
:
response
.
headers
().
getAll
(
name
)) {
System
.
err
.
println
("HEADER: " +
name
+ " = " +
value
); } } } if (
response
.
status
().
code
() == 200 &&
HttpUtil
.
isTransferEncodingChunked
(
response
)) {
readingChunks
= true;
System
.
err
.
println
("CHUNKED CONTENT {"); } else {
System
.
err
.
println
("CONTENT {"); } } if (
msg
instanceof
HttpContent
) {
HttpContent
chunk
= (
HttpContent
)
msg
;
System
.
err
.
println
(
chunk
.
content
().
toString
(
CharsetUtil
.
UTF_8
)); if (
chunk
instanceof
LastHttpContent
) { if (
readingChunks
) {
System
.
err
.
println
("} END OF CHUNKED CONTENT"); } else {
System
.
err
.
println
("} END OF CONTENT"); }
readingChunks
= false; } else {
System
.
err
.
println
(
chunk
.
content
().
toString
(
CharsetUtil
.
UTF_8
)); } } } @
Override
public void
exceptionCaught
(
ChannelHandlerContext
ctx
,
Throwable
cause
) {
cause
.
printStackTrace
();
ctx
.
channel
().
close
(); } }
查找资源
Jre/Lib
输入类名或文件名
类结构窗口