java写http服务器需要写出post方式请求和get方式的示例代码
以下是Java写HTTP服务器的示例代码,包括POST和GET请求:
POST请求示例代码:
import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetSocketAddress; import java.util.HashMap; import java.util.Map; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer;
public class HttpServerDemo {
public static void main(String[] args) throws Exception {
HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);
server.createContext("/", new MyHandler());
server.setExecutor(null);
server.start();
}
static class MyHandler implements HttpHandler {
@Override
public void handle(HttpExchange exchange) throws IOException {
String requestMethod = exchange.getRequestMethod();
if ("POST".equals(requestMethod)) {
handlePostRequest(exchange);
} else {
handleGetRequest(exchange);
}
}
private void handlePostRequest(HttpExchange exchange) throws IOException {
InputStream is = exchange.getRequestBody();
byte[] buffer = new byte[1024];
int read = is.read(buffer);
String requestBody = new String(buffer, 0, read);
System.out.println("POST请求的请求体:" + requestBody);
String response = "POST请求成功";
exchange.sendResponseHeaders(200, response.getBytes().length);
OutputStream os = exchange.getResponseBody();
os.write(response.getBytes());
os.flush();
os.close();
}
private void handleGetRequest(HttpExchange exchange) throws IOException {
String query = exchange.getRequestURI().getQuery();
Map<String, String> parameters = new HashMap<String, String>();
if (query != null) {
String[] pairs = query.split("&");
for (String pair : pairs) {
String[] param = pair.split("=");
String key = param[0];
String value = param[1];
parameters.put(key, value);
}
}
String response = "GET请求成功";
exchange.sendResponseHeaders(200, response.getBytes().length);
OutputStream os = exchange.getResponseBody();
os.write(response.getBytes());
os.flush();
os.close();
}
}
}
GET请求示例代码:
import java.io.IOException; import java.io.OutputStream; import java.net.InetSocketAddress; import java.util.HashMap; import java.util.Map; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer;
public class HttpServerDemo {
public static void main(String[] args) throws Exception {
HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);
server.createContext("/", new MyHandler());
server.setExecutor(null);
server.start();
}
static class MyHandler implements HttpHandler {
@Override
public void handle(HttpExchange exchange) throws IOException {
String requestMethod = exchange.getRequestMethod();
if ("POST".equals(requestMethod)) {
handlePostRequest(exchange);
} else {
handleGetRequest(exchange);
}
}
private void handleGetRequest(HttpExchange exchange) throws IOException {
String query = exchange.getRequestURI().getQuery();
Map<String, String> parameters = new HashMap<String, String>();
if (query != null) {
String[] pairs = query.split("&");
for (String pair : pairs) {
String[] param = pair.split("=");
String key = param[0];
String value = param[1];
parameters.put(key, value);
}
}
String response = "GET请求成功";
exchange.sendResponseHeaders(200, response.getBytes().length);
OutputStream os = exchange.getResponseBody();
os.write(response.getBytes());
os.flush();
os.close();
}
private void handlePostRequest(HttpExchange exchange) throws IOException {
String response = "POST请求成功";
exchange.sendResponseHeaders(200, response.getBytes().length);
OutputStream os = exchange.getResponseBody();
os.write(response.getBytes());
os.flush();
os.close();
}
}
原文地址: https://www.cveoy.top/t/topic/fFk4 著作权归作者所有。请勿转载和采集!