如何在 micronaut 中使用拦截器添加 header
How to add header using interceptor in micronaut
我使用 micronaut 和 kotlin。所以我尝试添加 header 以使用拦截器请求其他服务。你能举个例子吗?
So I trying to add header to request to other service using
interceptor. Can you give me example?
这是来自 https://docs.micronaut.io/latest/guide/index.html#clientFilter 的示例:
@Filter("/repos/**")
class BintrayFilter implements HttpClientFilter {
final String username;
final String token;
BintrayFilter(
@Value("${bintray.username}") String username,
@Value("${bintray.token}") String token ) {
this.username = username;
this.token = token;
}
@Override
public Publisher<? extends HttpResponse<?>> doFilter(MutableHttpRequest<?> request, ClientFilterChain chain) {
return chain.proceed(
request.basicAuth(username, token)
);
}
}
在 doFilter
方法中,您可以随心所欲地处理请求,包括向其中添加 headers。
编辑
问题表明正在使用 Kotlin。这是 Kotlin 的对应物,与上面的 url 相同:
@Filter("/repos/**")
internal class BintrayFilter(
@param:Value("${bintray.username}") val username: String,
@param:Value("${bintray.token}") val token: String) : HttpClientFilter {
override fun doFilter(request: MutableHttpRequest<*>, chain: ClientFilterChain): Publisher<out HttpResponse<*>> {
return chain.proceed(
request.basicAuth(username, token)
)
}
}
我使用 micronaut 和 kotlin。所以我尝试添加 header 以使用拦截器请求其他服务。你能举个例子吗?
So I trying to add header to request to other service using interceptor. Can you give me example?
这是来自 https://docs.micronaut.io/latest/guide/index.html#clientFilter 的示例:
@Filter("/repos/**")
class BintrayFilter implements HttpClientFilter {
final String username;
final String token;
BintrayFilter(
@Value("${bintray.username}") String username,
@Value("${bintray.token}") String token ) {
this.username = username;
this.token = token;
}
@Override
public Publisher<? extends HttpResponse<?>> doFilter(MutableHttpRequest<?> request, ClientFilterChain chain) {
return chain.proceed(
request.basicAuth(username, token)
);
}
}
在 doFilter
方法中,您可以随心所欲地处理请求,包括向其中添加 headers。
编辑
问题表明正在使用 Kotlin。这是 Kotlin 的对应物,与上面的 url 相同:
@Filter("/repos/**")
internal class BintrayFilter(
@param:Value("${bintray.username}") val username: String,
@param:Value("${bintray.token}") val token: String) : HttpClientFilter {
override fun doFilter(request: MutableHttpRequest<*>, chain: ClientFilterChain): Publisher<out HttpResponse<*>> {
return chain.proceed(
request.basicAuth(username, token)
)
}
}