Postman发送请求报错【{ “timestamp“: “2022-09-30T07:12:17.782+00:00“, “status“: 400, “error“: “】

本文介绍了如何在POSTMAN中正确携带请求参数,以及通过检查入参属性和控制台错误信息来定位并解决MethodArgumentNotValidException。重点在于理解验证失败的原因和属性一致性检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原因是你没有在POSTMAN里面携带请求入参内容:
在这里插入图片描述
还有需要按照要求检查入参实体类属性对应上
和看控制台的打印信息即可解决。
例如:
2022-09-30 15:13:35.248 WARN 3948 — [io-9020-exec-10] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument [0] in public com.zyxd.fish.study.common.pojo.common.ApiResponseDto com.zyxd.fish.study.producer.db.user.controller.SendMessageController.getCreditCard(com.zyxd.fish.study.common.pojo.home.request.PayssionRequestDO) throws com.fasterxml.jackson.core.JsonProcessingException: [Field error in object ‘payssionRequestDO’ on field ‘orderId’: rejected value [null]; codes [NotNull.payssionRequestDO.orderId,NotNull.orderId,NotNull.java.lang.String,NotNull]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [payssionRequestDO.orderId,orderId]; arguments []; default message [orderId]]; default message [不能为null]] ]

已解决,
简单讲,看控制台打印的信息,不是报错的那种堆栈信息,
在这里插入图片描述

检查入参属性是否携带且对应属性一致。
在这里插入图片描述
上述

### HTTP 406 Not Acceptable 错误的原因及解决方法 HTTP 406 Not Acceptable 错误表示服务器端无法提供与客户端请求中 `Accept` 头字段匹配的内容类型。此错误通常发生在客户端请求的资源格式不被服务器支持的情况下[^1]。具体来说,当客户端通过 `Accept` 头指定它能够接受的媒体类型(如 `application/json` 或 `text/html`),而服务器无法生成这些类型的内容时,就会返回 406 状态码。 #### 原因分析 以下是导致 HTTP 406 错误的一些常见原因: - 客户端发送了不正确的 `Accept` 头,或者指定了服务器不支持的内容类型。 - 服务器配置问题,例如 Nginx 或 Apache 的 MIME 类型未正确配置,导致无法响应特定内容类型的请求- 应用程序逻辑限制,即后端服务可能仅支持某些特定的内容类型,并且拒绝处理其他类型。 #### 解决方法 以下是几种可能的解决方法: 1. **检查客户端请求头** 确保客户端请求中的 `Accept` 头字段设置正确。例如,如果期望接收 JSON 格式的数据,则应将 `Accept` 设置为 `application/json`。可以通过以下代码示例验证请求头是否正确: ```python import requests headers = { 'Accept': 'application/json' } response = requests.get('http://example.com/user/login', headers=headers) print(response.status_code, response.text) ``` 2. **检查服务器配置** 如果使用的是 Nginx 或 Apache 等 Web 服务器,确保其 MIME 类型配置正确。例如,在 Nginx 中可以添加以下配置以支持更多内容类型: ```nginx types { application/json json; text/html html; } default_type application/json; ``` 3. **调整应用程序逻辑** 检查后端应用程序的逻辑,确保其能够处理客户端请求的媒体类型。例如,在 Spring Boot 应用程序中,可以通过 `@RequestMapping` 注解明确支持的内容类型: ```java @RestController @RequestMapping(value = "/user/login", produces = {"application/json", "text/html"}) public class LoginController { @GetMapping public ResponseEntity<String> login() { return ResponseEntity.ok("Login Successful"); } } ``` 4. **调试工具辅助** 使用浏览器开发者工具或 Postman 等工具,检查实际发送请求头和响应头,确认是否存在不匹配的情况。例如,在浏览器中打开开发者工具,切换到“网络”标签页,查看 `/user/login` 请求的具体信息。 #### 注意事项 在某些情况下,错误可能是由于客户端与服务器之间的加密协议不兼容引起的。例如,较新的 curl 版本可能会因为默认的安全级别较高而导致连接失败[^2]。在这种情况下,可以尝试通过降低安全级别来解决问题,但需要注意潜在的安全风险。 此外,根据 IP 协议规范,任何不符合版本号要求的数据包都应被静默丢弃[^3]。虽然这与 HTTP 406 错误无直接关联,但在排查网络问题时仍需注意底层协议的兼容性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值