gpt4 book ai didi

java - Java 中的原始 HTTP 1.1 请求实现未终止

转载 作者:行者123 更新时间:2023-12-01 11:47:05 25 4
gpt4 key购买 nike

我已经使用以下链接中的代码实现了 httpClient。当 HTTP 请求版本为 1.0 时,我能够获取 html 休息并且程序被终止。

https://www3.ntu.edu.sg/home/ehchua/programming/webprogramming/HTTP_Basics.html

如果我将版本更改为 1.1 ,则会打印响应,但即使在此之后程序也不会终止。请提及更改并提出更改建议。

import java.net.*;
import java.io.*;

public class HttpClient {
public static void main(String[] args) throws IOException {
// The host and port to be connected.
String host = "www.google.com";
int port = 80;
// Create a TCP socket and connect to the host:port.
Socket socket = new Socket(host, port);
// Create the input and output streams for the network socket.
BufferedReader in
= new BufferedReader(
new InputStreamReader(socket.getInputStream()));
PrintWriter out
= new PrintWriter(socket.getOutputStream(), true);
// Send request to the HTTP server.
out.println("GET /index.html HTTP/1.1");
out.println(); // blank line separating header & body
out.flush();
// Read the response and display on console.
String line;
// readLine() returns null if server close the network socket.
while((line = in.readLine()) != null) {
System.out.println(line);
}
// Close the I/O streams.
in.close();
out.close();
}
}

最佳答案

HTTP keepalive 在 1.1 中默认处于启用状态。因此,响应不会因流结束而终止:它会因内容长度或分块(如果使用)而终止。

请参阅 RFC 2616。如果您要实现 HTTP,您需要了解全部内容。

关于java - Java 中的原始 HTTP 1.1 请求实现未终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29067502/

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