chunked Transfer-Encoding forbidden

public class NettyHttpServerHandler extends ChannelInboundHandlerAdapter { static Logger logger = LoggerFactory.getLogger(NettyHttpServerHandler.class); static final byte[] HTTP_403_DATA = "<h1>403 Forbidden</h1><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding--><!--padding-->".getBytes(); static final String HEADER_ENCODING = "ISO-8859-1"; private static final AttributeKey<Session> SESSION_KEY = AttributeKey.valueOf("session"); @Override public void channelRead(final ChannelHandlerContext ctx, Object msg) throws Exception { FullHttpRequest fhr = (FullHttpRequest) msg; String uri = fhr.uri(); Packet resp = Packet.create(1024); // uri的第二段,就是通道标签 if (uri.startsWith("/video/")) { String tag = uri.substring("/video/".length()); resp.addBytes("HTTP/1.1 200 OK\r\n".getBytes(HEADER_ENCODING)); resp.addBytes("Connection: keep-alive\r\n".getBytes(HEADER_ENCODING)); resp.addBytes("Content-Type: video/x-flv\r\n".getBytes(HEADER_ENCODING)); resp.addBytes("Transfer-Encoding: chunked\r\n".getBytes(HEADER_ENCODING)); resp.addBytes("Cache-Control: no-cache\r\n".getBytes(HEADER_ENCODING)); resp.addBytes("Access-Control-Allow-Origin: *\r\n".getBytes(HEADER_ENCODING)); resp.addBytes("Access-Control-Allow-Credentials: true\r\n".getBytes(HEADER_ENCODING)); resp.addBytes("\r\n".getBytes(HEADER_ENCODING)); ctx.writeAndFlush(resp.getBytes()).await(); // 订阅视频数据 long wid = PublishManager.getInstance().subscribe(tag, Media.Type.Video, ctx).getId(); setSession(ctx, new Session().set("subscriber-id", wid).set("tag", tag)); }
03-08
错误 {"response":{"_events":{},"_eventsCount":0,"accepted":false,"badRequest":false,"body":{"type":"Buffer","data":[]},"buffered":true,"charset":"UTF-8","clientError":false,"created":false,"error":{"method":"POST","path":"/uploads/index.php","status":500},"forbidden":false,"header":{"connection":"close","content-type":"text/html; charset=UTF-8","date":"Tue, 22 Jul 2025 06:37:57 GMT","server":"nginx/1.10.3","transfer-encoding":"chunked"},"headers":{"connection":"close","content-type":"text/html; charset=UTF-8","date":"Tue, 22 Jul 2025 06:37:57 GMT","server":"nginx/1.10.3","transfer-encoding":"chunked"},"info":false,"links":{},"noContent":false,"notAcceptable":false,"notFound":false,"ok":false,"redirect":false,"redirects":[],"req":{"_contentLength":1800,"_ended":true,"_events":{},"_eventsCount":3,"_hasBody":true,"_header":"POST /uploads/index.php HTTP/1.1\r\nHost: 223.112.5.141:61573\r\nAccept-Encoding: gzip, deflate\r\nUser-Agent: Opera/9.80 (Windows NT 6.1; U; es-ES) Presto/2.9.181 Version/12.00\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: 1800\r\nConnection: close\r\n\r\n","_headerSent":true,"_last":true,"_removedConnection":false,"_removedContLen":false,"_removedTE":false,"_trailer":"","agent":{},"chunkedEncoding":false,"connection":{"_events":{"close":[null,null]},"_eventsCount":7,"_hadError":false,"_handle":{"onconnection":null,"reading":true},"_host":null,"_httpMessage":null,"_parent":null,"_pendingData":null,"_pendingEncoding":"","_readableState":{"awaitDrain":0,"buffer":{"head":null,"length":0,"tail":null},"decoder":null,"defaultEncoding":"utf8","destroyed":false,"emitClose":false,"emittedReadable":false,"encoding":null,"endEmitted":false,"ended":false,"flowing":true,"highWaterMark":16384,"length":0,"needReadable":true,"objectMode":false,"pipes":null,"pipesCount":0,"readableListening":false,"reading":true,"readingMore":false,"resumeScheduled":false,"sync":false},"_server":null,"_sockname":null,"_writableState":{"bufferProcessing":false
最新发布
07-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值