io.netty.handler.codec.DecoderResult # SUCCESS 源码实例Demo

下面列出了 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);
    }
}
 
源代码4 项目: netty-4.1.22   文件: LastHttpContent.java

@Override
public DecoderResult decoderResult() {
    return DecoderResult.SUCCESS;
}
 

@Override
public DecoderResult decoderResult() {
    return DecoderResult.SUCCESS;
}
 
源代码6 项目: netty-4.1.22   文件: MqttMessage.java

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;
}
 
源代码10 项目: netty4.0.27Learn   文件: LastHttpContent.java

@Override
public DecoderResult getDecoderResult() {
    return DecoderResult.SUCCESS;
}
 
源代码11 项目: mithqtt   文件: MqttMessage.java

public MqttMessage(MqttFixedHeader fixedHeader, Object variableHeader, Object payload) {
    this(fixedHeader, variableHeader, payload, DecoderResult.SUCCESS);
}
 

@Override
public DecoderResult getDecoderResult() {
    return DecoderResult.SUCCESS;
}