Java 如何在RESTEasy 3.0客户端框架(使用ResteasyClientBuilder和ResteasyWebTarget)中设置HTTP头?
我正试图找出如何设置HTTP头,类似于这里所解释的:Java 如何在RESTEasy 3.0客户端框架(使用ResteasyClientBuilder和ResteasyWebTarget)中设置HTTP头?,java,jax-rs,resteasy,Java,Jax Rs,Resteasy,我正试图找出如何设置HTTP头,类似于这里所解释的: ,还是在这里 但是,我希望使用RESTeasy 3.0功能(ResteasyClientBuilder和ResteasyWebtarget),而不是不推荐使用的ProxyFactory,如下所述: 为了澄清,我也不想在每个请求上设置头/不想将它们传递给客户端,我希望它们设置在ResteasyClientBuilder/ResteasyWebtarget级别(如果可能)。找到了解决方案 诀窍是向ResteasyClient注册Cli
- ,还是在这里
public class AuthHeadersRequestFilter implements ClientRequestFilter {
private final String authToken;
public AuthHeadersRequestFilter(Credentials credentials) {
authToken = credentials.getAuthorizationHeader();
}
@Override
public void filter(ClientRequestContext requestContext) throws IOException {
requestContext.getHeaders().add("Authorization", authToken);
}
}
@这是线程安全的吗。例如,如果我在第一个请求中有4个头,在第二个请求中有3个头,那么这个第二个请求会有3个或4个头吗?我不确定我是否正确理解这个问题,但是。。。我很确定这是线程安全的。正如您所看到的,过滤器获取ClientRequestContext,因此我看不出两个请求如何相互影响。当然,这是假设所有请求使用相同的凭据,并且没有其他筛选器设置相同的头。我发现了另一篇更老的文章:希望这有帮助!
public class AuthHeadersRequestFilter implements ClientRequestFilter {
private final String authToken;
public AuthHeadersRequestFilter(Credentials credentials) {
authToken = credentials.getAuthorizationHeader();
}
@Override
public void filter(ClientRequestContext requestContext) throws IOException {
requestContext.getHeaders().add("Authorization", authToken);
}
}