我在尝试用socket写http server的时候,使用inputstrea.read(byte[] request)的方法读取client端数据,request 长度为1024.
然后用
String str = new String(request);
//或者
String str = new String(request, StandardCharsets.UTF_8)
成功得到完整的HTTP 1.1的请求。
但是当我把请求中的string并且计算长度的时候,会发生明显的异常。
具体情况是,我把POST 请求中的一段
“1+1”
的string类计算公式提取出来,很明显它的长度应该是3,但是我实际测量出来是
734
当我是用Arrays.tostring()还原 “1+1”的时候,显示如下
[49, 43, 49, 0, 0, 0, 0, 0, ......., 0]
49, 43很明显代表 1 和 “+”。所以那些0是怎么来的,还有请问如何把0消除掉。我觉得另一个原因可能是我无脑读1024个bytes,导致有些内容不够1024所以用0来填补,如果有什么办法可以从源头解决那是最好的了