java - 如何处理 Java HTTP Server 上不匹配/不需要的或有效的请求?

标签 java httpserver json-rpc

我有一个 Java HTTPServer 应用程序在 localhost:9090 上监听 JSON-RPC 格式的 POST 请求,如下所示;

 HttpServer server = HttpServer.create(new InetSocketAddress(9090), 0);
            System.out.println("> Server started at port number: "+ port);          
            server.createContext("/serverStatus", new RootHandler());
            server.createContext("/newTransaction", new EchoTransactionHandler());
            server.createContext("/", new EchoPostHandler());               
            server.setExecutor(null);
            server.start();

我通过 POST 和 JSON-RPC 格式发送所有请求。EchoPostHandler 类满足所有发出的 POST 请求。 EchoPosthandler 通过查看请求正文来决定哪个函数将起作用。

server.createContext("/", new EchoPostHandler());

所有post请求的url都是localhost:9090/。

只有 2 个 GET 请求。其中之一显示服务器状态。它的网址是localhost:9090/serverStatus

我的问题是;当用户发送不需要的请求时,给出适当的答案。例如,它可以调用localhost:9090/status而不是调用localhost:9090/serverStatus来了解服务器状态。

在这种情况下我想返回正确的答案。

我该如何处理这个任务?

最佳答案

每个 /<something> 都需要一个匹配的 URL你想要处理。在这方面,/status/serverstatus非常明显。

一种解决方案可能是定义两个 URL 并向两个 URL 添加相同的处理程序:

HttpHandler hndSystemStatus = new RootHandler();
HttpServer server = HttpServer.create(new InetSocketAddress(9090), 0);
            System.out.println("> Server started at port number: "+ port);          
            server.createContext("/serverStatus", hndSystemStatus );
            server.createContext("/status", hndSystemStatus );
            server.createContext("/newTransaction", new EchoTransactionHandler());
            server.createContext("/", new EchoPostHandler());               
            server.setExecutor(null);
            server.start();

关于java - 如何处理 Java HTTP Server 上不匹配/不需要的或有效的请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54195482/

相关文章:

java - 如何执行 Spring LDAP 和 JPA 事务

java - 如何解决java.lang.IllegalStateException : server in wrong state Exception

go - 在 heroku 上部署 golang 应用程序,构建成功但应用程序错误

java - 连接json-rpc接口(interface)

http - 通过 HTTP 进行回调的异步 RPC

java - 我的服务器和客户端套接字程序只是挂起而不打印任何内容

Java:如何在字母中进行增量

java - 集成到 Maven 模块项目中

javascript - 404 未找到 Node

mongodb - 如何将 mongodb session 放入 creachadair/jrpc2 处理程序中