http服务器实现http客户端get请求,服务端和客户端的java代码
时间: 2023-08-10 07:17:27 浏览: 157
好的,你要的答案已经来了。下面是一个简单的 HTTP 服务器和客户端的 Java 代码实现,可以实现 HTTP GET 请求:
HTTP 服务器代码:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class HttpServer {
public static void main(String[] args) throws IOException {
// 创建 ServerSocket 实例,指定端口号为 8080
ServerSocket serverSocket = new ServerSocket(8080);
while (true) {
// 等待客户端连接
Socket clientSocket = serverSocket.accept();
// 读取客户端请求的数据
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String requestLine = in.readLine();
System.out.println("Received request: " + requestLine);
// 构造响应数据
String responseBody = "<html><body><h1>Hello World!</h1></body></html>";
String response = "HTTP/1.1 200 OK\r\n" +
"Content-Type: text/html\r\n" +
"Content-Length: " + responseBody.length() + "\r\n" +
"Connection: close\r\n" +
"\r\n" +
responseBody;
// 发送响应数据给客户端
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
out.println(response);
// 关闭连接
clientSocket.close();
}
}
}
```
HTTP 客户端代码:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
public class HttpClient {
public static void main(String[] args) throws IOException {
// 创建 Socket 实例,连接服务器
Socket socket = new Socket("localhost", 8080);
// 发送 HTTP GET 请求
String request = "GET / HTTP/1.1\r\n" +
"Host: localhost\r\n" +
"Connection: close\r\n" +
"\r\n";
socket.getOutputStream().write(request.getBytes());
// 读取服务器响应的数据
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
// 关闭连接
socket.close();
}
}
```
上面的代码实现了一个简单的 HTTP 服务器和客户端,可以进行简单的 HTTP GET 请求和响应。需要注意的是,这个实现是非常简单的,没有考虑安全性、并发性等问题,只是为了演示 HTTP 请求和响应过程。在实际应用中,需要对代码进行优化和改进。
阅读全文