Java NegativeArraySizeException异常解决方案
作者:蜗牛coder 时间:2023-10-31 07:16:51
问题描述:服务器接收后台返回的报文时,提示java.lang.NegativeArraySizeException
分析:这种异常返回的原因,一般情况下没有报文提示为返回空报文,初步分析是响应报文流长度出了问题
百度一下类似的情况:https://stackoverflow.com/questions/11207897/negative-array-size-exception
节选部分内容:
try{
connection = (HttpConnection)Connector.open("http://someurl.xml",Connector.READ_WRITE);
URLEncodedPostData postData = new URLEncodedPostData(URLEncodedPostData.DEFAULT_CHARSET, false);
postData.append("username", "loginapi");
postData.append("password", "myapilogin");
postData.append("term", word);
connection.setRequestMethod(HttpConnection.POST);
connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
connection.setRequestProperty("User-Agent","Profile/MIDP-2.0 Configuration/CLDC-1.0");
requestOut = connection.openOutputStream();
requestOut.write(postData.getBytes());
String contentType = connection.getHeaderField("Content-type");
detailIn = connection.openInputStream();
int length = (int) connection.getLength();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
if(length > 0){//这里长度没有判定的情况下,byte array长度若为-1会产生错误
byte info[] = new byte[length];
int bytesRead = detailIn.read(info);
while(bytesRead > 0) {
baos.write(info, 0, bytesRead);
bytesRead = detailIn.read(info);
}
baos.close();
connection.close();
requestSuceeded(baos.toByteArray(), contentType);
detailIn.read(info);
}
else
{
System.out.println("Negative array size");
}
requestOut.close();
detailIn.close();
connection.close();
}
结论:HTTP服务器在返回响应报文的时候,没有进行content.length长度判断,按照常规流程响应了错误长度的报文,导致了接收方报文长度异常
来源:https://www.cnblogs.com/bobkingblog/p/11023620.html
标签:Java,NegativeArraySizeException
0
投稿
猜你喜欢
如何用Java Stream写出既高雅又装*的代码
2022-04-13 23:23:58
详解Java分布式系统中一致性哈希算法
2022-10-11 18:01:05
SpringBoot全局异常与数据校验的方法
2023-12-11 10:46:06
Spring boot如何快速的配置多个Redis数据源
2023-05-12 18:27:32
Struts2学习笔记(8)-Result常用类型
2023-06-05 11:10:19
Java webservice的POST和GET请求调用方式
2023-01-10 05:35:43
android通过gps获取定位的位置数据和gps经纬度
2023-04-26 04:51:59
java算法实现预测双色球中奖号码
2022-06-19 17:01:22
解决maven build 无反应,直接terminated的问题
2021-11-28 18:56:13
详解Java线程堆栈
2021-06-29 03:37:38
c#可以创建任意控件的拖动方法
2021-11-30 01:51:08
eclipse如何搭建Springboot项目详解
2023-11-29 04:52:36
Java环境配置原理全面解析
2023-11-23 07:56:48
Java8中CompletableFuture的用法全解
2023-09-08 15:08:55
java实现简单的小超市程序
2023-05-17 00:04:29
Java使用BigDecimal进行高精度计算的示例代码
2023-03-25 10:35:43
Spring Cloud中Sentinel的两种限流模式介绍
2021-11-22 00:38:10
Android集成微信支付功能
2023-07-14 10:38:11
Java中ArrayList和LinkedList的遍历与性能分析
2023-10-31 11:04:17
Java实现的校验银行卡功能示例
2022-01-28 19:33:53