繁体   English   中英

HttpURLConnection 只返回几个字节

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM