java - 如何让HttpServer识别Java中的特殊字符?

标签 java httpserver simplehttpserver

我想使用 Java HttpServer 进行一些 SQL 查询,但 HttpServer 似乎无法识别我提交到浏览器的链接中的特殊字符:

[1]: http://localhost:8001/test?query=SELECT * WHERE{ ?s rdf:type ?o. }

我总是收到这样的回复:

400 Bad Request
URISyntaxException thrown

这是我的服务器的代码:

public class SimpleHttpServer 
{

public static void main(String[] args) throws Exception 
{

        dir = args[0];
        HttpServer server = HttpServer.create(new InetSocketAddress(8001), 0);
        server.createContext("/test", new MyHandler());
        server.setExecutor(null);
        server.start();
    }

    static class MyHandler implements HttpHandler {
        public void handle(HttpExchange t) throws IOException {
            String response ;
            System.out.println(t.getRequestURI().getQuery().toString().replaceAll("query=",   ""));
            response =   ExecuteHttpQuery.getInstance().httpQuery(t.getRequestURI().getQuery().toString().replaceAll("query=", "").toString(), dir) + "\n";
            t.sendResponseHeaders(200, response.length());
            OutputStream os = t.getResponseBody();
            os.write(response.getBytes());
            os.close();
        }
    }
}

我该如何解决这个问题?

最佳答案

您绝对不应该在 URL 中传递 SQL 查询。

关于java - 如何让HttpServer识别Java中的特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8534577/

相关文章:

带有 httpServer 的 Java 应用程序在退出前挂起 45 秒

python http网络服务器

Python:如何对自定义 HTTP 请求处理程序进行单元测试?

javascript - 如何使用 javascript 跟踪符号链接(symbolic link)?

虚拟目录中的 Python 简单 HTTP 服务器

java - 我如何让我的消息体偷偷溜过 Jersey,也许使用 Mule

java - 如何从命令提示符运行使用 JFileChooser 类的程序?

java - 动画 Gif 帧到 BufferedImages 数组

java - Selenium Webdriver 循环

javascript - 为什么我们需要安装 http 模块来运行我们的 Node js 应用程序?