Netty开发HTTP解析问题



我试图从netty的代码中创建一个原始的异步http解析器,剥离所有netty依赖关系,我没有得到这段代码

private void skipControlCharacters(ByteBuffer buffer) {
    for (;;) {
        char c = (char) ByteBufferUtil.readUnsignedByte(buffer);
        if (!Character.isISOControl(c) &&
            !Character.isWhitespace(c)) {
            buffer.position(buffer.position()-1);
            break;
        }
    }
}

我有一个输入

的测试
 GET / HTT

,然后输入

 P/1.1rnHost: www.example.comrnConnection: closernrn

自然地,只有"GET/http"的第一个数据包被困在循环中,直到我得到BufferUnderflowException。在异步解析中,我们可能并不总是得到完整的数据包(这就是为什么http有rnrn的原因,这样我们就可以知道什么时候我们有完整的http请求数据包)。或者这个解析只工作,如果我做一些准备??这样我就必须自己保持缓存数据,直到我收到rnrn(我不喜欢其他层,但http解析器知道http解析,知道rnrn将是http特定的)。

谢谢,院长

没关系,该死的愚蠢的错误,G没有正确地发出来,而是作为空格。

最新更新