我正在使用 Jersey 客户端连接到 SSE 流。服务器要求我在 http 请求中添加 header 以进行授权,但我不知道如何添加 header 。
这是我的代码:
Client client = ClientBuilder.newBuilder().register(SseFeature.class).build();
WebTarget target = client.target(baseurl + "/v1/devices/events/");
eventSource = EventSource.target(target).build();
eventSource.register(getEventListener());
eventSource.open();
这是我需要添加的 header 示例:
Authorization: Bearer 38bb7b318cc6898c80317decb34525844bc9db55
最佳答案
基本身份验证会是这样的:
Client client = ClientBuilder.newClient();
HttpAuthenticationFeature feature = HttpAuthenticationFeature.basicBuilder().build();
client.register(feature);
client.register(SseFeature.class);
WebTarget target = client.target(baseurl + "/v1/devices/events/")
.property(HttpAuthenticationFeature.HTTP_AUTHENTICATION_BASIC_USERNAME, "...")
.property(HttpAuthenticationFeature.HTTP_AUTHENTICATION_BASIC_PASSWORD, "...");
...
您已经获得了由 Jersey 编码的密码。
如果它是一个 token :
Client client = ClientBuilder.newClient();
WebTarget target = client.target(baseurl + "/v1/devices/events/")
.request("...")
.header(HttpHeaders.AUTHORIZATION, "Bearer " + "... encoded token ...");
希望对您有所帮助!
关于java - 将授权 header 添加到 Jersey SSE 客户端请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29056051/