相关文章推荐

APP请求后端接口,莫名奇妙报错,前往后台查看日志还行报了下面的错误

02-03 23:52:37.853 ERROR [o.a.c.c.C.[.[localhost].[/].[dispatcherServlet]] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadException: java.io.EOFException: Unexpected EOF read on the socket] with root cause
java.io.EOFException: Unexpected EOF read on the socket
        at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:788)
        at org.apache.coyote.http11.Http11InputBuffer.access$300(Http11InputBuffer.java:42)
        at org.apache.coyote.http11.Http11InputBuffer$SocketInputBuffer.doRead(Http11InputBuffer.java:1133)
        at org.apache.coyote.http11.filters.IdentityInputFilter.doRead(IdentityInputFilter.java:102)
        at org.apache.coyote.http11.Http11InputBuffer.doRead(Http11InputBuffer.java:249)
        at org.apache.coyote.Request.doRead(Request.java:551)
        at org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:336)
        at org.apache.catalina.connector.InputBuffer.checkByteBufferEof(InputBuffer.java:632)
        at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:362)
        at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:132)
        at java.io.FilterInputStream.read(FilterInputStream.java:133)
        at org.apache.tomcat.util.http.fileupload.util.LimitedInputStream.read(LimitedInputStream.java:132)
        at org.apache.tomcat.util.http.fileupload.MultipartStream$ItemInputStream.makeAvailable(MultipartStream.java:977)
        at org.apache.tomcat.util.http.fileupload.MultipartStream$ItemInputStream.read(MultipartStream.java:881)
        at java.io.InputStream.read(InputStream.java:101)
        at org.apache.tomcat.util.http.fileupload.util.Streams.copy(Streams.java:98)
        at org.apache.tomcat.util.http.fileupload.util.Streams.copy(Streams.java:68)
        at org.apache.tomcat.util.http.fileupload.MultipartStream.readBodyData(MultipartStream.java:572)

将请求拿出来,参数什么的一样,使用postMan提交正常,采用APP访问接口就失败。

后面怀疑是不是请求头不一样,请求头也一致后发现postMan提交也失败了。

不带请求头使用postMan提交发现, Content-Length:659  用Fiddler拦截看到的, 对比APP提交拦截的Content-Length不一致 ,  在postMan中不指定Content-Length ,

会在提交的时候自己计算。 后面我手动设置 Content-Length:660  > 659, 发现请求就和APP请求一样报错了。

APP请求拦截的请求头Content-Length: 777

postMan请求不主动带Content-Length的话默认是在请求发生的时候计算出来的

手动指定Content-Length: 660  postMan请求一样报错了

总结: Content-Length 是表示请求的字节长度 , 服务的根据这个头去读取流,当读取到659的时候流已经到EOF结束了,但是APP设置的是777长度,服务端就认为请求流应该还没读取完,所以就报错了。

这个需要APP同事排查下为什么是 777 长度,这个长度不对

APP请求后端接口,莫名奇妙报错,前往后台查看日志还行报了下面的错误02-03 23:52:37.853 ERROR [o.a.c.c.C.[.[localhost].[/].[dispatcherServlet]] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.
SpringBoot项目在接收参数时,突然出现Unexpected EOF read on the socket异常报错,此时请求还没有进入服务端,初步看起来是客户端的问题。 进行Wireshark抓包查看HTTP请求报文,发现只有服务端响应报文,客户端请求报文丢失了。 请求方式是POST请求参数是String类型,不应该出现接收不到的情况,部署在其他环境上是好的。 于是我又换了另外一种请求方式,使用request接收,然后通过读取reader的方式获..
文件上传报错java.io.EOFException: Unexpected EOF read on the socket 问题解决 看字面意思,说是文件还没到末尾就被客户端中断,可是文件已经被上传到了服务器,并且信息也已经返回,为什么会这样?猜想是超出tomcat文件连接时间了,就被跳转 我用的是Spring Boot项目,可以直接在application配置文件里加上一个t...
Krzysztof Lis,Krishna Nakka,Pascal Fua,Mathieu Salzmann ICCV 2019 git clone https://github.com/cvlab-epfl/detecting-the-unexpected --recursive pip install numpy opencv-python-headless matplotlib h5py natsort imageio torch torchvision scipy tqdm tensorboard future ipython 要运行笔记本文件: pip install jupyterlab 训练有素的体重 下载并将其放置在detecting-the-unexpected/exp (或用env变量DIR_EXPERIMENTS指定的
最近负责的SpringBoot项目日志里面老是出现“Unexpected EOF read on the socket”的错误,但是测试时,测来测去又没发现什么问题,但是看到日志里面有错误日志又不知道原因,这个怎么能忍,所以花点时间好好看看。 首先得出我的结论:在客户端上传请求体的期间,客户端关闭了网络连接,导致服务器端的输入流异常中断,最终导致Jackson反序列化出现异常。下面是具体的分析过程。 首先我们看看错误日志: 11:00:13.792 [http-nio-9090-exec-1] E.
信息: 解析 HTTP 请求 header 错误注意:HTTP请求解析错误的进一步发生将记录在DEBUG级别。 java.lang.IllegalArgumentException: 在方法名称中发现无效的字符串, HTTP 方法名必须是有效的符号. atorg.apache.coyote.http11.InternalAprInputBuffer.parseRequestLine(InternalAprInputBuffer.jav.
前后端分离实现导出excel,后端使用easyexcel将数据写入excel表格,然后将其写入到响应流中,关于easyexcel的快速使用可参考文章:JAVA使用easyexcel导出excel 后端主要代码如下: public <T extends BaseRowModel> void exportExcel(HttpServletResponse response, List&lt...
EOFException根因分析 前端mock把requestBody给消费掉了,导致传到后端没有body,后端在解析的时候发现request请求头的content-length是59,就一直等待接收数据,与此同时,前端也在等待后端返回结果。1分钟后,前端等待超时,前端发EOF请求(具体为何会发EOF还需要进一步学习),后端收到以后,发现和预期的消息不一致,就报了EOF这个错误。 mock也会影响到request请求体,所以去mock-server.js中去查看。 删除红框的内容 作者:青城山下宁采臣 最近捣鼓RN,做了个项目,但是到调试接口的时候出了一个小问题,因为以前用的都是ajax和axios,这回rn自己提供了一个fetch的api,所以就索性用提供的了,然后就掉进坑里了……他!报错了 Unexpected token in JSON at position 0 眼熟的错误,可能以前当你发送一个HTTP请求的时候,都曾出现过这个错误提示或者相似的错误,那这个错误是由什么引起的呢 这些错误发生在你向服务器发送请求的时候,返回值不是JSON而你却用JSON的方法解析的时候,可能会发生这种情况 fetch(’/api’).then(res => res.json())
jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Object.success,但后台能够返回数据,原代码如下: var source=[]; $.ajax({ type: "post", url: "connectdb/select.jsp", data: {database: "scmdb", selectsql: sql}, async: false, method: 'post', dataType: "json", 上传文件偶尔会报出java.io.EOFException: Unexpected EOF read on the socket错误。 debug模式下不会出现该错误。 2、我的情况:不需要创建文件流,只需要将文件转换成二进制存储进入数据库。 3、解决方式: 3.1判断是否已经正确创建文件流。(我不需要。
早上起来发布个项目,现在测试没任何问题。索性直接打包线上代码测试,报了个java.io.EOFException: Unexpected EOF read on the socket 1、看里面一行错误都不是代码里面报的,都是apache报错就定位到是配置问题 2、查看了一下兆宽是最小的2M的学生机瞬间懂了就是超时问题 直接撸代码 在yml配置tomcat连接时间 server: tomcat: max-http-post-size: 100MB connection-timeout
一个项目使用了druid作为数据源,每过几十分钟刷新页面就会出现java.net.SocketException: 断开的管道 (Write failed) 错误。 后来给连接池配置部分加上了 <property name="validationQuery" value="select 1"/> <property name="testOnBorr...
 
推荐文章