feignclient post 请求如何application/x-www-form-urlencoded传参
时间: 2023-09-24 22:06:02 浏览: 172
浅析application/x-www-form-urlencoded和multipart/form-data的区别
在使用 FeignClient 发送 POST 请求时,可以通过 `@RequestParam` 注解来指定请求参数。而在使用 `application/x-www-form-urlencoded` 传参时,可以使用 `MultiValueMap` 类型的参数来传递参数。具体步骤如下:
1. 定义请求参数的类,例如:
```java
public class MyRequestParam {
private String param1;
private String param2;
// getter 和 setter 方法
}
```
2. 在 FeignClient 的方法声明中,使用 `@RequestBody` 注解来指定请求体参数,例如:
```java
@PostMapping("/my/api")
MyApiResponse myApi(@RequestBody MultiValueMap<String, String> requestBody);
```
3. 在调用 FeignClient 方法时,将 `MyRequestParam` 对象转换为 `MultiValueMap` 对象,并传递给 FeignClient 方法即可,例如:
```java
MyRequestParam requestParam = new MyRequestParam();
requestParam.setParam1("value1");
requestParam.setParam2("value2");
MultiValueMap<String, String> requestBody = new LinkedMultiValueMap<>();
requestBody.add("param1", requestParam.getParam1());
requestBody.add("param2", requestParam.getParam2());
MyApiResponse response = feignClient.myApi(requestBody);
```
注意,在使用 `application/x-www-form-urlencoded` 传参时,需要将请求参数转换为 key-value 的形式,并将其放入 `MultiValueMap` 中。同时,FeignClient 的方法声明中需要使用 `@RequestBody` 注解来指定请求体参数。
阅读全文