2013-11-04 41 views
2

我已经实现com.sun.net.httpserver.HttpServer:如何传递参数来执行HttpServer?

HttpServer server = HttpServer.create(new InetSocketAddress(8001), 0); 
server.createContext("/myserver", new myHttpHandler()); 
server.createContext("/myserver/get", new GetHttpHandler()); 

我想通过参数/ MYSERVER /与以下网址获得:

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? 

    } 
} 

如何访问参数deviceid我用我的网址在处理方法发送?

+1

你读过'HttpExchange'的javadoc吗?从那里开始。 –

+0

看来我可以通过getAttribute来访问参数,我试过String deviceid =(String)exchange.getAttribute(“deviceid”);但作为deviceid的值为空。我究竟做错了什么? – user840930

回答

0

我还没有使用这种类型,但它似乎从HttpExchange doc属性不是请求参数。该信息可能通过getQueryString()方法访问。

+0

好的。如果我从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? – user840930

+0

好的,我已经解决了这个问题。 com.sun.net.httpserver.HttpServer应与com.sun.net.httpserver.HttpExchange和com.sun.net.httpserver.HttpHandler一起使用。至于解析发送的属性,由于没有getQueryString,它看起来要复杂得多。 – user840930