Как получить заголовки в httpservice с экономичным протоколом - PullRequest
1 голос
/ 03 марта 2020
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 Ответ

1 голос
/ 14 марта 2020

В вашем классе 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");
        ...
    }
}
...