application/x-www-form-urlencoded传参,@NotBlank注解失效
时间: 2024-06-13 20:05:30 浏览: 165
application/x-www-form-urlencoded是一种编码方式,用于将表单数据编码为键值对,以便通过HTTP请求发送。在使用该编码方式时,@NotBlank注解失效的原因是因为该注解只能用于验证application/json格式的请求体中的参数,而不能用于验证application/x-www-form-urlencoded格式的请求体中的参数。因此,在使用该编码方式时,需要使用其他方式来验证参数,例如手动验证或使用第三方库来验证。
相关问题
feignclient post 请求如何application/x-www-form-urlencoded传参
在使用 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` 注解来指定请求体参数。
application/x-www-form-urlencoded 和 multipart/form-data
这两个是 HTTP 请求中常见的两种 Content-Type 类型。其中,application/x-www-form-urlencoded 是默认的 Content-Type,而 multipart/form-data 则用于上传文件等二进制数据。
application/x-www-form-urlencoded 的数据格式是 key1=value1&key2=value2,即将数据以键值对的形式进行编码,然后用 & 连接起来。这种格式适用于传输简单的文本数据,比如表单提交。
multipart/form-data 则是将数据分割成多个部分,每个部分都有自己的 Content-Type 和 Content-Disposition。这种格式适用于传输二进制数据,比如文件上传。
阅读全文
相关推荐
















