나는 나의 자바 HttpServer에 일부 SQL 쿼리를 만들고 싶어하지만 HttpServer에 내가 내 브라우저에 제출 링크에서 특수 문자를 인식하지 못하는 것 같다HttpServer가 Java에서 특수 문자를 인식하도록하려면 어떻게해야합니까?
:[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();
}
}
}
어떻게이 문제를 해결할 수 있습니까?
공백 및 다른 기호가 포함되어 있으므로 링크를 urlencode하고 싶을 것입니다. http://en.wikipedia.org/wiki/Percent-encoding – clamp