[英]HttpURLConnection returning only few bytes
我有:
InputStream input = null;
HttpURLConnection connection = null;
URL url = new URL("...");
connection = (HttpURLConnection) url.openConnection();
String zam = "...";
connection.setRequestProperty("Cookie",zam);
connection.connect();
int fileLength = connection.getContentLength();
input = connection.getInputStream();
byte data[] = new byte[400];
int count;
count = input.read(data);
connection.disconnect();
String str1 = new String(data);
str1,响应总是只有:
!DOCTYPE HTML 公共“-/
而已。 但是当我关闭 cookie 时:
connection.setRequestProperty("Cookie",zam);
一切都好;
感谢 ind adv 的回复。 阿迪。
我想问题在于您没有从流中读取所有数据。 尝试使用这样的方法。
public static String streamToString(final InputStream is, final int bufferSize) throws Exception {
final char[] buffer = new char[bufferSize];
final StringBuilder out = new StringBuilder();
try (Reader in = new InputStreamReader(is, "UTF-8")) {
int rsz = 0;
while ((rsz = in.read(buffer, 0, buffer.length)) > 0) {
out.append(buffer, 0, rsz);
}
}
return out.toString();
}
并阅读有关其他方法的答案如何在 Java 中读取/将 InputStream 转换为字符串?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.