java写http服务器只接受post方式请求和get方式
请求的示例代码:
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
public class MyHttpServer {
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();
System.out.println("Server started on port 8000");
}
static class MyHandler implements HttpHandler {
@Override
public void handle(HttpExchange exchange) throws IOException {
String requestMethod = exchange.getRequestMethod();
if (requestMethod.equalsIgnoreCase("GET")) {
handleGetRequest(exchange);
} else if (requestMethod.equalsIgnoreCase("POST")) {
handlePostRequest(exchange);
}
}
private void handleGetRequest(HttpExchange exchange) throws IOException {
String response = "This is a GET request";
exchange.sendResponseHeaders(200, response.length());
OutputStream os = exchange.getResponseBody();
os.write(response.getBytes());
os.close();
}
private void handlePostRequest(HttpExchange exchange) throws IOException {
String response = "This is a POST request";
exchange.sendResponseHeaders(200, response.length());
OutputStream os = exchange.getResponseBody();
os.write(response.getBytes());
os.close();
}
}
}
该示例代码创建了一个监听在8000端口的HTTP服务器,并通过createContext方法指定了默认的处理程序为MyHandler。MyHandler实现了HttpHandler接口,可以处理来自客户端的HTTP请求。
在handle方法中,根据请求方法的不同,调用了handleGetRequest或handlePostRequest方法处理GET或POST请求。这两个方法分别向客户端发送了不同的响应。在响应中,我们使用sendResponseHeaders方法指定了HTTP状态码和响应体的长度,并使用getResponseBody方法获取输出流,向客户端发送响应体。
通过这种方式,我们可以创建一个简单的HTTP服务器,只接受GET和POST请求
原文地址: https://www.cveoy.top/t/topic/fFm2 著作权归作者所有。请勿转载和采集!