jlp*_*jlp 6 java spring-cloud-feign openfeign
我有一个 Feign 客户端来访问需要两个标头的 createUser 端点:用户名和密码。我知道如何添加一个标头,但如何向请求添加两个标头?
@FeignClient(name = "client", url = "https://abc.abc.com/user/", configuration = FeignClientConfig.class)
public interface MyFeignClient {
@Headers("username_header: {username}") // how do I add "password" here.
@PostMapping(value = "v1/users")
void createUser((@Param("username") String username, User userRequest);
Run Code Online (Sandbox Code Playgroud)
}
更新:现在根据下面的答案,我将界面主体更改为:
@Headers({"username_header: {username}", "password_header: {password}"})
@PostMapping(value = "v1/users")
void createUser(@Param("username") String username,
@Param("password") String password,
User userRequest);
Run Code Online (Sandbox Code Playgroud)
调用它的代码是:
feignClient.createUser("me", "123", userObj);
Run Code Online (Sandbox Code Playgroud)
然后我收到错误:
org.springframework.beans.factory.BeanCreationException: Error creating bean,
nested exception is java.lang.IllegalStateException: Method has too many Body parameters:
feignClient.createUser(java.lang.String,java.lang.String, User)
Run Code Online (Sandbox Code Playgroud)
标头接受 String[] 作为值...所以
@Headers({ "username: {username}", "password: {password}" })
Run Code Online (Sandbox Code Playgroud)
应该做的伎俩
归档时间: |
|
查看次数: |
14790 次 |
最近记录: |