packagehttptest;importcom.google.gson.Gson;importcom.google.gson.reflect.TypeToken;importcom.sun.net.httpserver.HttpExchange;importcom.sun.net.httpserver.HttpHandler;importcom.sun.net.httpserver.HttpServer;import java.io.*;importjava.net.InetSocketAddress;importjava.net.URI;importjava.util.Map;public classApp {public static void main(String[] args) throwsIOException {
HttpServer httpServer= HttpServer.create(new InetSocketAddress(8001), 0);
httpServer.createContext("/test", newTestHandler());
httpServer.start();
System.out.println("8001端口已成功启动");
}static class TestHandler implementsHttpHandler {
@Overridepublic void handle(HttpExchange httpExchange) throwsIOException {//返回
String rtn="调用成功";
httpExchange.sendResponseHeaders(200, 0);//获取请求路径
URI requestURI =httpExchange.getRequestURI();
System.out.println("请求路径为:"+requestURI);//获取请求方法
String requestMethod =httpExchange.getRequestMethod();
System.out.println("请求方法为:"+requestMethod);//获取请求体
InputStream requestBody =httpExchange.getRequestBody();
InputStreamReader inputStreamReader= newInputStreamReader(requestBody);
BufferedReader bufferedReader= newBufferedReader(inputStreamReader);
StringBuffer stringBuffer= newStringBuffer();
String s= "";while ((s = bufferedReader.readLine()) != null) {
stringBuffer.append(s.trim());
}
System.out.println(stringBuffer);//此处引入谷歌Gson框架将String转为Map方便获取参数
Gson gson = newGson();
Map map= gson.fromJson(stringBuffer.toString(), new TypeToken>() {
}.getType());
System.out.println("请求参数为:"+map.get("cmd"));
System.out.println("请求参数为:"+map.get("phone"));
OutputStream responseBody=httpExchange.getResponseBody();
responseBody.write(rtn.getBytes());
responseBody.close();
}
}
}