1
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是最终类,所以我不能扩展它来处理标题。

4

1 回答 1

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");
        ...
    }
}
于 2020-03-14T06:44:10.843 回答