java - 将授权 header 添加到 Jersey SSE 客户端请求

标签 java http-headers jersey authorization server-sent-events

我正在使用 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/

相关文章:

java - 如何在 Solr 中获取最后的索引记录?

java - 解决 io.netty :netty-transport-native-epoll 时 Jenkins 中的 Maven 出错

java - Google Guava 库的 junit 测试在哪里?

python - web.py:获取原始Web请求

java - JAX_RS-MessageBodyProviderNotFoundException : MessageBodyWriter not found for ArrayList

java - 如何在JAVA中播放flv、mp4、avi格式视频?

jquery - 将 django HttpResponse 作为文件返回,而不是 $.ajax() post 中的普通响应正文

javascript - 如何使用 JavaScript 发出 HTTP 请求以从 Ubiquity AirMax 或 AirFibre radio 获取 status.cgi json 数据?

maven - 尽管 Servlet 在 IntelliJ IDEA 中工作,但在部署到 Tomcat 时无法工作

java - 将委托(delegate)人注入(inject) Jersey 2 中的资源方法