gpt4 book ai didi

Java HTTP GET 响应等待直到超时

转载 作者:可可西里 更新时间:2023-11-01 02:47:32 25 4
gpt4 key购买 nike

我应该开发一个程序来读取具有指定 URL 的网页,但问题是我不允许使用任何 HTTP 库,我只允许使用 TCP。

下面是读取响应消息的代码:

private static String readMultiline (BufferedReader inStr) {
String message="";
String line=readLine(inStr);

while (line != null) {
message += line + "\r\n";
line=readLine(inStr);
}

if (message.length() == 0) return null;
return message;
}

private static String readLine (BufferedReader inStr) {
String line = null;
try{
line = inStr.readLine();
} catch (IOException ioe) {
System.out.println("ERROR: Incoming packet could not be read properly.");
return null;
}
return line;
}

问题是header和网页内容都接收完了,但是while循环还在等待'next'行,这是不存在的。过了一会儿,发生超时,代码继续。我尝试连接的服务器不执行“连接:关闭”。如何检测文件结尾?

最佳答案

其他答案已被删除,所以我会发布一个。您正在使用读取信息的 IO 方法,其中一行被定义为一组以换行符结尾的字符。但是不能保证您的 TCP 数据包以换行符结尾,因此您需要使用更不可知的 IO 读取来处理它们。

看看 DataInputStream,它有一个名为 readFully 的便捷方法,我认为你会发现它很有用。

关于Java HTTP GET 响应等待直到超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8527291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com