bufferedReader.read()始终为-1是怎么回事?

z1xian 2018-04-19 10:31:20
在MyEclipse下创建了一个Servlet并通过Tomcat部署,然后在新建的工程里新建了一个本地Java项目,通过这个本地项目访问Servlet服务器,连接是成功的,可是通过bufferedWriter.write()发送任意数据,在Servlet里bufferedReader.read()得到的始终是-1,也就是说明没有得到任何数据,但是用Android同样连接到这个Servlet并且发送数据就能接收到,这是怎么回事呢?
...全文
1196 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
z1xian 2018-04-20
  • 打赏
  • 举报
回复
引用 4 楼 wasd986523 的回复:
你post请求没参数吗,你把服务端的返回也在控制台打印下,绝对是服务端没返回任何数据
再有一个,之前看有人说什么bufferedReader.read()必须读到换行符才停止,于是我把Eclipse中发送的改为String,然后服务器改为readLine,读出来的String就为null,说明服务器确实是啥都没接收到,另外,确实不是输入流或输出流有旧数据的原因,我尝试过先用Android连接、先用本地项目连接、重启服务器后马上连接、重启项目连接等等,得到的结果都是一样的,都是Android的连接毫无问题,但是Eclipse的本地项目的连接接收到的就是为空,快疯了我
z1xian 2018-04-20
  • 打赏
  • 举报
回复
整理了一下



以上图一,Android中的sendCode是9901,服务器成功接收到了9901,并做了相关处理,成功返回9905



以上图二,我的服务器搭在MyEclipse中,然后我在Eclipse中新建了一个项目,代码是Copy过来的,用Eclipse访问MyEclipse中的服务器,结果服务器接收到的始终为-1

服务器的doGet是直接发给doPost,但是我两个部分的连接服务器的代码是一毛一样的呀,为什么Android发送的请求码服务器就能接收到,Eclipse发送的就接收不到呢,崩溃~
z1xian 2018-04-20
  • 打赏
  • 举报
回复
这张图是Android端请求Servlet的部分,连接、发送都是一模一样的,除了第一个发送的请求码,是9902
引用 4 楼 wasd986523 的回复:
你post请求没参数吗,你把服务端的返回也在控制台打印下,绝对是服务端没返回任何数据
这个测试例子里没有服务器返回,我只是想试试服务器能否接收到那个本地项目中发送的“50”,但是这个50都没有发过去呢,另外服务器的返回指的是哪个呢?
阿闰 2018-04-20
  • 打赏
  • 举报
回复
你post请求没参数吗,你把服务端的返回也在控制台打印下,绝对是服务端没返回任何数据
z1xian 2018-04-19
  • 打赏
  • 举报
回复

这是本地项目中请求服务器的代码,可以看到下面输出了getResponseCode()的值也是200,代表连接是成功的,既然连接是成功的,为什么发送数据就接收不到了呢?
z1xian 2018-04-19
  • 打赏
  • 举报
回复

这是Servlet中接收的代码,代码是没有问题的,用Anroid可以正确连接并且传输数据
z1xian 2018-04-19
  • 打赏
  • 举报
回复
下面的控制台输出的requestState就是Servlet端的bufferedReader.read()

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧