Java 如何将参数传递给HttpServer的实现?
我已经实现了com.sun.net.httpserver.httpserver:Java 如何将参数传递给HttpServer的实现?,java,parameter-passing,httpserver,Java,Parameter Passing,Httpserver,我已经实现了com.sun.net.httpserver.httpserver: HttpServer server = HttpServer.create(new InetSocketAddress(8001), 0); server.createContext("/myserver", new myHttpHandler()); server.createContext("/myserver/get", new GetHttpHandler()); 我想使用以下url将参数传递给/m
HttpServer server = HttpServer.create(new InetSocketAddress(8001), 0);
server.createContext("/myserver", new myHttpHandler());
server.createContext("/myserver/get", new GetHttpHandler());
我想使用以下url将参数传递给/myserver/get:
http://localhost:8000/myserver/get?deviceid=ABB00122
static class GetHttpHandler implements HttpHandler {
public void handle(HttpExchange exchange) throws IOException {
// how do I now access the deviceid?
}
}
如何访问在handle方法中随url一起发送的参数deviceid?我没有使用此类型,但从中可以看出属性不是请求参数。信息很可能可以通过该方法访问。HttpServer类非常简单。如果希望访问URL中传递的参数(使用GET方法),则需要提供一个方法来提取这些参数 您可以从以下位置获取完整URL: httpExchange.getRequestURI().getQuery() 然后从这个字符串可以得到详细信息
有关更多信息,请参阅。您是否阅读了
HttpExchange
的javadoc?从这里开始。似乎我可以通过getAttribute访问参数,我尝试了字符串deviceid=(String)exchange.getAttribute(“deviceid”);但是获取null作为deviceid的值。我做错了什么?好吧。如果我从com.sun.net.httpserver.HttpExchange切换到javax.xml.ws.spi.http.HttpExchange,那么javax.xml.ws.spi.http.HttpExchange如何与com.sun.net.httpserver.httpserver一起使用?我应该也使用com.sun.net.httpserver.HttpHandler吗?好的,我已经解决了这个问题。com.sun.net.httpserver.httpserver应与com.sun.net.httpserver.HttpExchange和com.sun.net.httpserver.HttpHandler一起使用。至于解析发送的属性,由于没有getQueryString,它看起来要复杂得多。