微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将动态标头值传递给 Micronaut 声明式 HTTP 客户端?

如何解决如何将动态标头值传递给 Micronaut 声明式 HTTP 客户端?

我想利用 Micronaut 的“声明式 HTTP 客户端”功能。我很难理解如何传入动态标头值,并且想知道这是否可能。考虑以下示例:

package com.example;

import io.micronaut.http.annotation.Header;
import io.micronaut.http.client.annotation.Client;
import java.util.ArrayList;

@Client("${my.api.host}")
@Header(name = "Auth-Header",value = "<This needs to be dynamic>")
public interface Myapiclient {
    public ArrayList<Dog> getDogs();
}

如何使我的标头值动态 [非静态]?

解决方法

声明式客户端中的动态标头可以在方法参数级别定义。请参见下面的示例:

@Client("${my.api.host}")
interface LocalhostClient {
    @Get
    List<String> getDogs(@Header(name = "Authorization") String authorization);
}

然后您可以使用适当的 Authorization 标头值调用客户端方法,如下所示:

var dogs = client.getDogs("Bearer some-token");

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。