usar ejemplo codigo java httpserver

java - ejemplo - private jlabel



Servidor HTTP incorporado en la aplicaciĆ³n Java Swing (5)

Deseo incorporar un servidor HTTP muy ligero en mi aplicación java swing, que solo acepta solicitudes, realiza algunas acciones y devuelve los resultados.

¿Hay una clase Java muy ligera que puedo usar en mi aplicación que escucha en un puerto específico para las solicitudes Http y me permite manejar las solicitudes?

Tenga en cuenta que no estoy buscando un servidor http independiente, solo una pequeña clase de Java que puedo usar en mi aplicación java.


Dijiste "muy ligero" dos veces, así que creo que JLHTTP podría ser una buena JLHTTP para ti. Puede incrustarlo como un único archivo de origen o como un archivo jar de ~ 35K / 50K, pero es compatible con la mayoría de las funcionalidades que necesitaría en un servidor HTTP de fábrica.

Descargo de responsabilidad: soy el autor. Pero compruébalo tú mismo y mira lo que piensas :-)




Si no está utilizando Java 6, ciertamente recomendaría Jetty . Eso funciona muy bien y tiene una interfaz de programación decente.


Sorprendentemente, Sun JDK ya contiene una implementación simple del servidor http (solo a partir del JDK 6). Ver JavaDoc

Usage:

import java.io.IOException; import java.io.OutputStream; import java.net.InetSocketAddress; import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.concurrent.Executors; import com.sun.net.httpserver.Headers; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; public class HttpServerDemo { public static void main(String[] args) throws IOException { InetSocketAddress addr = new InetSocketAddress(8080); HttpServer server = HttpServer.create(addr, 0); server.createContext("/", new MyHandler()); server.setExecutor(Executors.newCachedThreadPool()); server.start(); System.out.println("Server is listening on port 8080" ); } } class MyHandler implements HttpHandler { public void handle(HttpExchange exchange) throws IOException { String requestMethod = exchange.getRequestMethod(); if (requestMethod.equalsIgnoreCase("GET")) { Headers responseHeaders = exchange.getResponseHeaders(); responseHeaders.set("Content-Type", "text/plain"); exchange.sendResponseHeaders(200, 0); OutputStream responseBody = exchange.getResponseBody(); Headers requestHeaders = exchange.getRequestHeaders(); Set<String> keySet = requestHeaders.keySet(); Iterator<String> iter = keySet.iterator(); while (iter.hasNext()) { String key = iter.next(); List values = requestHeaders.get(key); String s = key + " = " + values.toString() + "/n"; responseBody.write(s.getBytes()); } responseBody.close(); } } }

O puede usar Jetty para ese propósito. Es bastante liviano y se adapta perfectamente a este propósito.