Как получить заголовки в httpservice по протоколу экономии

HelloWorldService.Iface helloService =
        Clients.builder("tbinary+http://127.0.0.1:8080/hello")
               .addHttpHeader("key", "value")
               .build(HelloWorldService.Iface.class);

ServerBuilder sb = Server.builder();
sb.service("/hello", THttpService.of(new HelloServiceImpl()));
sb.http(8080);
Server server = sb.build();
server.start();

Как обрабатывать заголовки HTTP на сервере? THttpService является последним классом, поэтому я не могу расширить его для обработки заголовков.

1 ответ

В вашем HelloServiceImpl класс, вы можете получить доступ к текущему ServiceRequestContext с помощью ServiceRequestContext.current() для доступа к заголовкам запроса и другой информации:

public class HelloServiceImpl implements HelloWorldService.AsyncIface {
    @Override
    public void hello(...) {
        ServiceRequestContext ctx = ServiceRequestContext.current();
        RequestHeaders headers = ctx.request().headers();
        String value = headers.get("key");
        ...
    }
}
Другие вопросы по тегам