第一类报错:字符串转换错误和版本问题

在ajax请求后台数据时有时会报 HTTP 400 错误 - 请求无效 (Bad request);出现这个请求无效报错说明请求没有进入到后台服务里;

原因:

1)前端提交数据的字段名称或者是字段类型和后台的实体类不一致,导致无法封装;

2)前端提交的到后台的数据应该是json字符串类型,而前端没有将对象转化为字符串类型;

解决方案:

1)对照字段名称,类型保证一致性

2)使用stringify将前端传递的对象转化为字符串    data: JSON.stringify(param)  ;

具体案例:

Http Get 或 Http Post都不能传包含 "(引号)、"{"、"}"(花括号)这样的参数,需要对特殊字符进行转义,把 " 转成%22,把 { 转成%7b,把 } 转成%7d

String url= "http://127.0.0.1:9000/signal/Resource?param={\"name\":\"service1\",\"param\":{\"id\":\"1\"}}";

url= url.replace("\"", "%22").replace("{", "%7b").replace("}", "%7d");

注意:参数里面如果有 空格的话,也需要转义,否则会有问题。

从本地继续测试,跟踪tomcat console后台,发现后台报错:

java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986at org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:189)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1000)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:745)

原因:tomcat 版本问题

Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986Tomcat换一个低一点的版本可以!这是因为高一点的Tomcat版本对URL有更严格的要求,当你的URL中包含了超出RFC 7230和RFC 3968所定义的字符时,就会报错。

本地使用的是tomcat7.0.73,正常运行的使用的是toamcat7.0.47回测后,页面返回正常。

原文链接:https://blog.csdn.net/juan0901/java/article/details/82415612

第二类报错:请求体过大

存储超大HTTP头部的内存buffer大小

语法:large_client_header_buffers number size;

默认:large_client_header_buffers 48k;

配置块:http、server

large_client_header_buffers定义了Nginx接收一个超大HTTP头部请求的buffer个数和每个buffer的大小。如果HTTP请求行(如GET/index HTTP/1.1)的大小超过上面的单个buffer,则返回"Request URI too large"(414)。请求中一般会有许多header,每一个header的大小也不能超过单个buffer的大小,否则会返回"Bad request

(400)。当然,请求行和请求头部的总和也不可以超过buffer个数*buffer大小。

也就是:

1.如果你的请求中的header都很大,那么应该使用client_header_buffer_size,这样能减少一次内存分配。

2.如果你的请求中只有少量请求header很大,那么应该使用large_client_header_buffers,因为这样就仅需在处理大header时才会分配更多的空间,从而减少无谓的内存空间浪费。

bad request java_HTTP 400 错误 - 请求无效 (Bad request)相关推荐

  1. linux 400错误请求,HTTP 400 错误 - 请求无效 (Bad request)的原因分析和解决方法

    400是一种是HTTP状态码,400 Bad Request.是在打开网页时服务器返回到客户端的一种状态码.显示在客户端的也就是400页面. 400页面是当用户在打开网页时,返回给用户界面带有400提 ...

  2. java http 400 错误的请求_HTTP 400 错误 - 请求无效 (Bad request)

    在ajax请求后台数据时有时会报 HTTP 400 错误 - 请求无效 (Bad request);出现这个请求无效报错说明请求没有进入到后台服务里: 原因: 1)前端提交数据的字段名称或者是字段类型 ...

  3. AJAX请求返回HTTP 400 错误 - 请求无效 (Bad request)

    在ajax请求后台数据时有时会报HTTP400错误-请求无效(Badrequest);出现这个请求无效报错说明请求没有进入到后台服务里: 原因: 1)前端提交数据的字段名称或者是字段类型和后台的实体类 ...

  4. HTTP400错误 请求无效 (Bad request)

    HTTP 400 Bad Request 响应状态码表示由于语法无效,服务器无法理解该请求. 客户端不应该在未经修改的情况下重复此请求. 出现这个请求无效报错说明请求没有进入到后台服务里 可能的原因: ...

  5. 400错误请求怎么解决_什么是400错误请求错误(以及如何解决)?

    400错误请求怎么解决 A 400 Bad Request Error occurs when a request sent to the website server is incorrect or ...

  6. Retrofit2网络请求的path部分的“/”斜杠乱码为“百分号2F”,请求结果为400的请求无效

    网络请求rxjava + retrofit2的方式请求网络,请求结果为400 通过抓包发现retrofit2的url的path参数的"/"被转义成为"%2F", ...

  7. php400错误的请求,Wordpress中的Ajax返回400错误请求,但不确定如何进一步调试 - WordPress - srcmini...

    我一直试图使用Ajax将页面的数据(或其他任何东西)输出到div中.数据基于页面上的列表.尽管调用Ajax请求的jQuery函数似乎可以正常工作, 但是从Ajax调用在控制台上却收到了400个错误的请 ...

  8. html 400 错误,网站报400Bad Request错误的解决办法

    今天360搜索引擎例行的网站安全检查,网站后台记录下了这一过程: 这里面我发现一些记录从后台无法打开的,例如这条:http://www.icvio.com/'))%20AND%202733=3566% ...

  9. http请求报400错误的原因分析

    HTTP 400 错误 - 请求无效 (Bad request) 在ajax请求后台数据时有时会报 HTTP 400 错误 - 请求无效 (Bad request);出现这个请求无效报错说明请求没有进 ...

最新文章

  1. ALFNet行人检测
  2. char、Varchar、nvarchar、ntext (转)
  3. php封装一个加密算法,PHP封装的非对称加密RSA算法示例
  4. Java 压缩解压缩 第三方组件,推荐一个强大的Java开发工具类库!
  5. UDK初学教程 01: 基本操作
  6. android 记步功能实现,Android计步(简单Demo)
  7. EasyExcel导入Excel和导出Excel教程
  8. SQL Server 无法启动WMI服务
  9. 苹果开发 笔记(69)SVProgressHUD
  10. JavaScript:实现计算二维平面上两点之间的距离算法(附完整源码)
  11. STM32复习笔记(五) —— GPIO锁定机制
  12. 屏幕录制软件推荐,分享这3款,简单好用
  13. Nginx的介绍与使用
  14. Nginx 下载安装与配置
  15. BUUCTF 打卡8
  16. IOI 2005 Riv 河流 题解
  17. 从零到壹搭建一个商城架构--性能指标
  18. 下图是微型计算机cpu的结构图它由控制器,下图是微型计算机CPU的结构图,它由控制器、( )、寄存器等构成。...
  19. Python 信号处理——时域同步平均技术(TSA)
  20. *POJ3666.Making the Grade(DP+离散化)

热门文章

  1. floor函数 与 ceil函数
  2. 常见的浏览器兼容性问题总结(有自己遇到的还有网上大神总结的)
  3. currentstyle 织梦_织梦导航高亮标签currentstyle调用自定义字段的方法
  4. Python实例:网络爬虫抓取豆瓣3万本书(5)
  5. 7、注解@Mapper、@MapperScan
  6. springboot整合mybatis @MapperScan可以不加在启动器上
  7. 新开发的手机网址导航--酷网导航
  8. 安徽省计算机专业专科排名2015,2016年安徽专科学校排名汇总
  9. 美猴云2016新品发布会——天互市场总监徐飞精彩演讲回顾
  10. 一个屌丝程序猿的人生(六十四)