использовать http2-сервер как соединение с предшествующим знанием HTTP / 2, не работающее с receiveFullBytes - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть следующее как часть сервера http2 undertow. Сервер Undertow версии 2.0.22. Финал

String response = "Hello world";
Undertow server = Undertow.builder()
                .setServerOption(UndertowOptions.ENABLE_HTTP2, true)
                .addHttpListener(9999, 127.0.0.1)
                .setHandler(
                 exchange ->
                {
                    try
                    {
                            exchange.getRequestReceiver().receiveFullBytes((e, m) ->
                            {
                                System.out.println("request body test");
                                String test=new String(m);
                                System.out.println("request body " + test);

                            });


                            System.out.println("request header " + exchange.getRequestHeaders());
                            System.out.println("request method " + exchange.getRequestMethod());


                        exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "application/json");
                        exchange.getResponseSender().send(response);
                    }
                    catch (Exception e)
                    {
                        e.printStackTrace();
                    }
                })
        .build();
        server.start();

Со стороны клиента при использовании curl с параметром --http2 он работает, значит на сервере печатается тело запроса.

Но когда из curl я пытаюсь вызвать с помощью --http2-prior-Knowledge, он не идет внутрь exchange.getRequestReceiver (). ReceiveFullBytes ... Таким образом, тело запроса не печатается, а как ответ c stati * hello Мир, который я получаю на стороне клиента.

Я пробовал также с receiveFullString, он не работал.

Мне нужно, чтобы тело запроса было напечатано, чтобы я мог использовать данные для какой-то другой обработки , используя http2-prior-знание. Есть идеи, что мне здесь не хватает?

...