最近遇到一个问题,向服务器请求数据,然后将流读出来
不过,有时候读出来的数据里面会有乱码(/ □ \)
之前读流的方式是这样的
public static String getString(InputStream inputStream){
StringBuffer buffer = new StringBuffer();
if(inputStream != null){
byte[] b = new byte[4096];
try {
for (int n; (n = inputStream.read(b)) != -1;) {
buffer.append(new String(b, 0, n));
}
} catch (IOException e) {
e.printStackTrace();
}
}
return buffer.toString();
}最后将读流方式是这样的
public static String getString(InputStream inputStream){
ByteArrayOutputStream outSteam = new ByteArrayOutputStream();
try {
byte[] buffer = new byte[1024];
int len = -1;
while ((len = inputStream.read(buffer)) != -1) {
outSteam.write(buffer, 0, len);
}
outSteam.close();
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return new String(outSteam.toByteArray());
}
问题解决了,至少是到现在没出现问题
姑且在这里记录一下
在Android应用中向服务器发送HTTP请求时,偶尔发现从流中读取的数据出现乱码(/ □ )。经过排查,更新了读流方式,目前问题已得到解决,本文档记录这一解决方案。
1135

被折叠的 条评论
为什么被折叠?



