Pequeño server local
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>simple-server</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<!-- NanoHTTPD -->
<dependency>
<groupId>org.nanohttpd</groupId>
<artifactId>nanohttpd</artifactId>
<version>2.3.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Compilador -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<!-- Shade plugin para fat jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.4.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.example.SimpleServer</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
<properties>
<java.version>11</java.version>
</properties>
package com.example;
import fi.iki.elonen.NanoHTTPD;
import java.util.Map;
public class SimpleServer extends NanoHTTPD {
public SimpleServer() throws Exception {
super(8080);
start(SOCKET_READ_TIMEOUT, false);
System.out.println("Servidor corriendo en http://localhost:8080/");
}
@Override
public Response serve(IHTTPSession session) {
StringBuilder sb = new StringBuilder();
sb.append("Method: ").append(session.getMethod()).append("\n");
sb.append("URI: ").append(session.getUri()).append("\n");
// Headers
sb.append("Headers:\n");
for (Map.Entry<String, String> h : session.getHeaders().entrySet()) {
sb.append(" ").append(h.getKey()).append(" = ").append(h.getValue()).append("\n");
}
// Query parameters
if (session.getParameters() != null && !session.getParameters().isEmpty()) {
sb.append("Params:\n");
session.getParameters().forEach((k, v) ->
sb.append(" ").append(k).append(" = ").append(v).append("\n")
);
}
// Mostrar en consola también
System.out.println("==== NUEVA PETICIÓN ====");
System.out.println(sb.toString());
System.out.println("========================");
return newFixedLengthResponse(sb.toString());
}
public static void main(String[] args) throws Exception {
new SimpleServer();
}
}
Comentarios
Publicar un comentario