Apipost发起请求,能正确返回,日志却打印java.io.EOFException: null 的原因

news2024/10/6 16:31:34

http响应头首部Content-Length - 程序员大本营

http响应头首部Content-Length

HTTP Content-Length深入实践-CSDN博客

用了这么久HTTP, 你是否了解Content-Length?-CSDN博客

 具体分析可看上面参考文章。

解决办法:可在请求头加上Content-Length,准确的长度,或者Transfer-Encoding:chunked

现象:一个简单的请求,正确返回了。

 @PostMapping("/getTokenTest")
    public String getTokenTest(@RequestBody User user) {
        return user.getUserName();
    }

日志却有java.io.EOFException: null

本人的情况是因为用的ApiPost发起的请求,Postman没有这种情况。因为postman默认给你加了Content-Length。

有这个错误信息的原因:

http1.1默认采用长连接Connection: keep-alive,但是你又没有告诉它报文结束的位置,所以就有异常信息EOFException打印出来了。

可以看下EOFException异常的解释:null表示在读取数据时,已经读到了文件或输入流的末尾,但是仍然尝试读取数据导致的异常。其中的null表示在读取时并没有读取到任何数据。在 Java 编程语言中,EOFException 是一个继承自 IOException 的异常类。通常情况下,当使用流读取数据时,如果已经到达了流的末尾,那么读取操作会返回 -1,表示已经没有更多的数据可以读取。但是如果继续进行读取操作,就会抛出 EOFException 异常

详细解释:

HTTP1.1采用了持久的连接,也就是一次TCP的连接不马上释放,允许许多的请求跟响应在一个TCP的连接上发送,所以客户机与服务器需要某种方式来标示一个报文在哪里结束和在下一个报文在哪里开始。简单的方法是使用呢content-length,但这只有当报文长度可以预先判断的时候才起作用,而对于动态的内容或者在发送数据前不能判定长度的情况下,可以使用分块的方法Transfer-Encoding:chunked来传送编码。

因为不知道正确的content-length长度,所以我们使用Transfer-Encoding:chunked分块,再次调用,发现日志不再打印EOFException异常。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1184104.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux服务器添置一块新硬盘操作

之前有一台ubuntu服务器,考虑未来存储容量可能不够,添加了一块新的硬盘,这是本次添置硬盘过程。 首次接上硬盘,提示: 没有找到新接入设备,查看接线,主板有个硬盘接线端子坏了,更换一…

机器视觉opencv答题卡识别系统 计算机竞赛

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 答题卡识别系统 - opencv python 图像识别 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分…

新翔绩效考核系统

介绍: 新翔绩效考核系统,是新翔软件有限公司整合众多企事业单位绩效考核需求,而开发的网络版绩效管理软件。软件分前台手机端评分页面和后台电脑端管理页面,可实现360度绩效考核、KPI考核等模式考核,评分方式多样、设…

计算机毕设 基于情感分析的网络舆情热点分析系统

文章目录 0 前言1 课题背景2 数据处理3 文本情感分析3.1 情感分析-词库搭建3.2 文本情感分析实现3.3 建立情感倾向性分析模型 4 数据可视化工具4.1 django框架介绍4.2 ECharts 5 Django使用echarts进行可视化展示5.1 修改setting.py连接mysql数据库5.2 导入数据5.3 使用echarts…

【网络面试必问(6)】IP协议对网络包的转发

接上一篇:【网络面试必问(5)】网络收发数据及断开服务器(四次挥手) 在之前的博客中,我们提到过,网络传输的报文是有真实的数据包和一些头部组成的,目前我们了解的头部就有TCP头、IP头…

VueUse、View Transitions API实现暗黑模式主题动画切换效果

VueUse、View Transitions API实现暗黑模式主题动画切换效果 前言View Transitions API兼容版本 VueUse 正题效果安装代码 作者GitHub:https://github.com/gitboyzcf 有兴趣可关注!! 前言 View Transitions API View Transitions API 是原生…

华东理工大学漏洞报送证书

获取来源:edusrc(教育漏洞报告平台) url:主页 | 教育漏洞报告平台 兑换价格:20金币 获取条件:提交华东理工大学任意中危或以上级别漏洞 证书规格:附送图二实物及封皮

[ Linux Busybox ] nandwrite 命令解析

文章目录 相关结构体nandwrite 函数实现nandwrite 实现流程图 文件路径:busybox-1.20.2/miscutils/nandwrite.c 相关结构体 MTD 相关信息结构体 struct mtd_info_user {__u8 type; // MTD 设备类型__u32 flags; // MTD设备属性标志__u32…

【Proteus仿真】【STM32单片机】水质监测报警系统设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器,使用按键、LED、蜂鸣器、LCD1602、PCF8591 ADC、PH传感器、浑浊度传感器、DS18B20温度传感器、继电器模块等。 主要功能: 系统运行后&a…

汽车标定技术(七)--基于模型开发如何生成完整的A2L文件(2)

目录 1. 自定义ASAP2文件 2. asap2userlib.tlc需要修改的部分 3. 标定量观测量地址替换 3.1 由elf文件替换 3.2 由map文件替换 3.3 正则表达式(含asap2post.m修改方法) 4.小结 书接上文汽车标定技术(五)--基于模型开发如何生成完整的A2L文件(1)-C…

考研408-计算机网络 第二章-物理层学习笔记及习题

第二章 物理层 一 通信基础 1.1 物理层基本概念 1.1.1 认识物理层 物理层目的:解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是具体的传输媒体。 物理层主要任务:确认与传输媒体接口有关的一些特性,需要进行定义标…

Kafka(消息队列)--简介

1、kafka: 是一个高吞吐的分布式消息系统,与Hdfs比较相似,但是与hdfs的区别是在于hdfs是存储的是历史的、海量的数据,然而kafka存储的是实时的、最新的数据。 2、消息队列: 指的是在Kafka中的数据队列。可以存放数据在…

华为数通方向HCIP-DataCom H12-831题库(多选题:141-160)

第141题 项目实施方案主要包含哪些项? A、风险控制措施 B、人员安排 C、时间规划 D、割接流程 答案:ABCD 解析: 项目实施方案主要包括:时间规划、人员安排、割接流程、风险控制措施。 第142题 以下哪些广域网链路属于报文交换网? A、PSIN B、ISDN C、X.25 D、ATM E、MSTP…

大语言模型(LLM)综述(六):大型语言模型的基准和评估

A Survey of Large Language Models 前言7 CAPACITY AND EVALUATION7.1 基本能力7.1.1 语言生成7.1.2 知识利用7.1.3 复杂推理 7.2 高级能力7.2.1 人类对齐7.2.2 与外部环境的交互7.2.3 工具操作 7.3 基准和评估方法7.3.1 综合评价基准7.3.2 评估方法 7.4 实证评估7.4.1 实验设…

数字化工厂的实施挑战与解决方法

随着科技的快速发展,数字化工厂成为现代制造业的重要趋势之一。数字化工厂通过整合信息技术和制造技术,可以提高生产效率、降低成本、优化资源利用,同时也给企业带来了更多的挑战。 1. 技术挑战 数字化工厂实施过程中最大的挑战之一是技术方…

运动耳机怎么选?精选五款优秀的运动耳机分享

​对于喜欢运动的我来说,不管是在室内健身,还是在户外跑步,我都会边运动边听歌,运动耳机里放着自己喜欢的音乐会很放松。然而,市面上的运动耳机品牌和型号众多,质量参差不齐。今天,我们就为大家…

ZKP8.2 FRI (Univariate) Polynomial Commitment

ZKP学习笔记 ZK-Learning MOOC课程笔记 Lecture 8: FRI-based Polynomial Commitments and Fiat-Shamir (Justin Thaler) 8.2 FRI (Univariate) Polynomial Commitment Recall: Univariate Polynomial Commitments Initial Attempt from Lecture 4 (Merkle Tree) Fixing…

AI智能助理源码系统+智能创作 带完整搭建教程

大家好啊,罗峰今天来给大家介绍一款AI智能助理源码系统。 以下是部分核心功能实现代码模块 系统特色功能一览: 高效便捷:AI智能助理能够帮助用户完成各种任务,无论是写作、论文、代码、小说、创意策划,还是Excel表格…

【Node.js入门】1.1Node.js 简介

Node.js入门之—1.1Node.js 简介 文章目录 Node.js入门之—1.1Node.js 简介什么是 Node.js错误说法 Node.js 的特点跨平台三方类库自带http服务器非阻塞I/O事件驱动单线程 Node.js 的应用场合适合用Node.js的场合不适合用Node.js的场合弥补Node.js不足的解决方案 什么是 Node.j…

如何利用ChannelPipeline在Netty中搭建无懈可击的数据处理流水线?

在上篇文章(Netty 入门 — ChannelHandler, Netty 的数据加工厂)提到 ChannelHandler 虽然是一个好的打工人,但是在我们实际业务线中,他不可能一个人干所有的活啊,毕竟都 21 世纪了,我们是要讲究…