8赞
347
当前位置:  开发笔记 > 编程语言 > 正文

JavaNegativeArraySizeException异常解决方案

这篇文章主要介绍了JavaNegativeArraySizeException异常解决方案,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,

Java NegativeArraySizeException异常解决方案

问题描述:服务器接收后台返回的报文时,提示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长度判断,按照常规流程响应了错误长度的报文,导致了接收方报文长度异常

到此这篇关于Java NegativeArraySizeException异常解决方案的文章就介绍到这了,更多相关Java NegativeArraySizeException异常内容请搜索编程笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程笔记!


推荐阅读
  • Django 【第二十篇】后端CORS解决跨域问题
    一、为什么会有跨域问题?是因为浏览器的同源策略是对ajax请求进行阻拦了,但是不是所有的请求都给做跨域,像是一般的href属性,a标签什么的都不拦截。二、解决跨域问题的两种方式JS ... [详细]
  • 简介:对于文件存储CPFS:文件存储CPFS(CloudParallelFileStorage)是阿里云齐全托管、可扩大的并行文件存储系统,针对高性能计算场景的性能要求进行了 ... [详细]
  • Dockerfile的概述和构建(图文详解)
    Dockerfile的概述和构建(图文详解)- Dockerfile的概述和构建 一、Docker镜像的分层二、Docker镜像的创建1、Docker镜像2、Docker镜像 ... [详细]
  • structBITMAPFILEHEADER{publicshortbfType;publicintbfSize;publicshortbfReserved1;publicshor ... [详细]
  • 我是如何被软工大作业榨干的
     整体项目学习:Androidstudio创建第一个项目并运行_ChangYan.的博客-CSDN博客_androidstudio运行项目(16条消息)Androidstudio连 ... [详细]
  • 选择FreeBSD 六个理由
    第一个理由:FreeBSD是一个免费的开源的操作系统Linux也是一个免费的开源的操作系统。不过Linux是基于GNUGeneralPublicLicense的,而 ... [详细]
  • 看pyconchina2015有感+突然想起django to do list中的一点事
    今儿上午在慕课网上观看了PyConChina-2015的视频,感觉每个给我的触动都挺大的。其中美团网分享的他们用python开发所用的技术和遇到的问题给我印象挺深,那就是原来pyt ... [详细]
  • ubuntu16.04下basler工业相机的配置与使用
    本帖旨在記錄一下在Ubuntu16.04下配置basler工業相機pylonsdk,以及結合opencv進行CMake配置使用的一些事項。1.Prerequisite ... [详细]
  • CentOS7安装docker启动报错
    执行yuminstalldocker-y命令安装docker然后启动服务systemctlstartdocker,服务启动失败查询日志文件varlogmessages,显示报错:E ... [详细]
  • Linux及各大发行版介绍Mandriva  Mandriva原名Mandrake,最早由GalDuval创建并在1998年7月发布。记得前两年国内刚开始普及Linux时,Mandr ... [详细]
  • 一、静态文件:1、静态文件夹的创建:在项目总目录下手动新建一个static文件夹(非限定名称,约定如此),后续项目需要用到的静态文件都存于该文件夹内,其中可以再划分多个子文件夹来更 ... [详细]
  •   国际地球自转和参考坐标系统服务(IERS)在2012年6月30日午夜(北京时间7月1号7点59分59秒)增加一闰秒(即出现7:59:60)。  由于Linuxkernel2.6 ... [详细]
  • 区分码农与程序员,好的前端工程师能拿有多少年薪?
    区分码农与程序员,好的前端工程师能拿有多少年薪?,Go语言社区,Golang程序员人脉社 ... [详细]
  • IwanttoapplymyFlaskprojectonmyworkplaceCentos6.SoIfollowedguidefromgoogletoinstall ... [详细]
  • 这篇文章主要介绍“Linux破解root密码的方法”,在日常操作中,相信很多人在Linux破解root密码的方法问题上存在疑惑,小编查阅了各式资料,整理 ... [详细]
author-avatar
公关活动策划公司_333
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有