| 发表于:2007-04-15 15:08:29 楼主 |
要写一个http的client程序,要求使用socket。http的response从socket中的inputstream中得到。问题在于: inputstream的前面部分内容使用的是unicode编码(response中的status line和header),后面的entity内容可能是任何编码(比如二进制的图片文件或者mp3等,也可能是html的文本)。前后之间用一个“\r\n”空行隔开。 我本来是使用inoutstreamreader来读这个inputstream的,读到“\r\n”空行之后再直接读这个inputstream的二进制内容。可是发现inoutstreamreader已经自动地读到用来分开两部分的“\r\n”空行之后去了,也就是说它实际上迭代调用基础inputstream的read方法更多次,而不是只读到它返回给用户的那个字符那里。所以我当我再调用inputstream的read方法是得到的字节已经不是空行之后的第一个字节了。因此我的client程序得到的entity内容就不全了。 请问应该怎么解决这个问题! |
|
|
|
|