下面列出了 io.netty.handler.codec.DecoderResult # SUCCESS 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@DataProvider(value = {
"true",
"false"
})
@Test
public void getDecoderFailure_returns_null_when_DecoderResult_is_not_a_failure(
boolean isUnfinished
) {
// given
HttpObject httpObjectMock = mock(HttpObject.class);
DecoderResult nonFailureDecoderResult = (isUnfinished) ? DecoderResult.UNFINISHED : DecoderResult.SUCCESS;
doReturn(nonFailureDecoderResult).when(httpObjectMock).decoderResult();
// when
Throwable result = implSpy.getDecoderFailure(httpObjectMock);
// then
assertThat(result).isNull();
}
@Override
public void recycle() {
this.content = null;
this.headers.clear();
this.version = HttpVersion.HTTP_1_1;
this.status = DEFAULT_STATUS;
this.lastHttpContent = null;
this.decoderResult = DecoderResult.SUCCESS;
}
@Override
protected void channelRead0(ChannelHandlerContext ctx, HttpObject msg) throws Exception {
if (msg.decoderResult() != DecoderResult.SUCCESS) {
logger.error("simple_http decode error ,pip close");
ctx.channel().close();
return;
}
if (msg instanceof HttpRequest) {
logger.debug(((HttpRequest) msg).uri());
String[] hexItems = ((HttpRequest) msg).uri().split("%");
StringBuilder hexStr = new StringBuilder();
if (hexItems.length > 1) {
for (int i = 1; i < hexItems.length; i++) {
if (hexItems[i].length() == 2) {
hexStr.append(hexItems[i]);
} else {
hexStr.append(hexItems[i], 0, 2);
break;
}
}
}
ByteBuf encodeData = Unpooled.wrappedBuffer(Hex.decode(hexStr.toString()));
ctx.writeAndFlush(new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK));
ctx.fireChannelRead(encodeData);
} else if (msg instanceof HttpContent) {
ctx.pipeline().remove(HttpServerCodec.class);
ctx.pipeline().remove(this);
}
}
@Override
public DecoderResult decoderResult() {
return DecoderResult.SUCCESS;
}
@Override
public DecoderResult decoderResult() {
return DecoderResult.SUCCESS;
}
public MqttMessage(MqttFixedHeader mqttFixedHeader, Object variableHeader, Object payload) {
this(mqttFixedHeader, variableHeader, payload, DecoderResult.SUCCESS);
}
@Override
public DecoderResult decoderResult() {
return DecoderResult.SUCCESS;
}
@Override
public DecoderResult decoderResult() {
return DecoderResult.SUCCESS;
}
public NettyHttpResponse() {
this.headers = new DefaultHttpHeaders(false);
this.version = HttpVersion.HTTP_1_1;
this.status = DEFAULT_STATUS;
this.decoderResult = DecoderResult.SUCCESS;
}
@Override
public DecoderResult getDecoderResult() {
return DecoderResult.SUCCESS;
}
public MqttMessage(MqttFixedHeader fixedHeader, Object variableHeader, Object payload) {
this(fixedHeader, variableHeader, payload, DecoderResult.SUCCESS);
}
@Override
public DecoderResult getDecoderResult() {
return DecoderResult.SUCCESS;
}