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.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n
当然、「GET / HTT」だけの最初のパケットは、BufferUnderflowException が発生するまでループにスタックします。非同期解析では、常に完全なデータ パケットを取得できるとは限りません (これが、http に \r\n\r\n がある理由であり、完全な http 要求パケットをいつ取得したかがわかります)。または、この解析は、事前解析を行う場合にのみ機能しますか??? \r\n\r\n を受け取るまで自分でデータをキャッシュし続けなければならない (他のレイヤーは好まないが、http パーサーは http の解析について知っており、\r\n\r\n は http 固有であることを知っている) )。
ありがとう、ディーン