【发布时间】:2016-06-10 14:04:19
【问题描述】:
in = new DataInputStream(conn.getInputStream());
String str = "";
while (in.available() > 0) {
str += in.readUTF();
}
in = new DataInputStream(conn.getInputStream());
String str = "";
while (in.available() > 0) {
str2 += Bytes.toString(in.readBytes());
}
我无法使用上述两种方法从我的 php 页面读取任何响应。
in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
String str2="";
while ( (str += in.readLine()) != null && in.ready()){}
而且只有这种方法才行。
有人可以告诉我发生了什么输入流,类型或字符集的问题。谢谢!!
【问题讨论】:
-
您确定要使用 DataInputStream 吗?这是一种非常特殊的二进制格式。您可以使用 InputStreamReader 读取文本,或使用 InputStream 读取原始字节。
-
in.available()也可能不是您应该检查的。如果服务器响应尚未出现,那将返回 false。无需检查即可阅读。它将阻塞直到有足够的数据可用。 -
这是否意味着 datainputstream 不适合通过 http 读取文本?谢谢!
标签: java android httpurlconnection