HTTP 400 Bad request 原因
Posted ibigboy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP 400 Bad request 原因相关的知识,希望对你有一定的参考价值。
我的代码部署在Linux测试环境,我在使用 httpclient 发送http请求时遇到问题,请求报 400 Bad request。网上都在说下面这两个原因
400 是 HTTP 的状态码,主要有两种形式:
- 1、bad request 意思是 "错误的请求";
- 2、invalid hostname 意思是 "不存在的域名"。
400 Bad Request 是由于明显的客户端错误(例如,格式错误的请求语法,太大的大小,无效的请求消息或欺骗性路由请求),服务器不能或不会处理该请求。
在 ajax 请求后台数据时比较常见。产生 HTTP 400 错误的原因有:
- 1、前端提交数据的字段名称或者是字段类型和后台的实体类不一致,导致无法封装;如需要 int,客户端传的是 String
- 2、前端提交的到后台的数据应该是 json 字符串类型,而前端没有将对象转化为字符串类型;
解决方案:
-
1、对照字段名称,类型保证一致性
-
2、使用 stringify 将前端传递的对象转化为字符串:即 data: JSON.stringify(param);
拿我第一个调用的接口来说,我只需要传一个String类型的参数,也不需要json类型,所以不符合我的情况,我的代码没有出现以上两种问题,所以貌似还有别的原因。
我走的是代理。在本第调试的时候没有走代理,没有遇到该问题。所以从这里出发查找问题,最后解决了400的错误。
以上是关于HTTP 400 Bad request 原因的主要内容,如果未能解决你的问题,请参考以下文章
HTTP 400 错误 - 请求无效 (Bad request)