package web;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.util.HashMap;
import java.util.Map;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
import domain.Contato;
public class Server {
private final Contato contato;
private HttpServer server;
public Server(Contato contato) {
this.contato = contato;
try {
initializeServer();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
private void initializeServer() throws IOException {
server = HttpServer.create(new InetSocketAddress(8989), 0);
server.createContext("/contato/altera", new HttpHandler() {
@Override
public void handle(HttpExchange ex) throws IOException {
Map<String,String> params = new HashMap<String, String>();
String[] pairs = ex.getRequestURI().getQuery().split("&");
for (String pair : pairs) {
String[] values = pair.split("=");
params.put(values[0], values[1]);
}
String responseText = "";
if (params.containsKey("nome")) {
contato.setNome(params.get("nome"));
responseText += "Nome do contato alterado para " + params.get("nome") + "; ";
}
if (params.containsKey("telefone")) {
contato.setTelefone(params.get("telefone"));
responseText += "Telefone do contato alterado para " + params.get("telefone") + "; ";
}
OutputStream out = ex.getResponseBody();
ex.sendResponseHeaders(200, responseText.length());
out.write(responseText.getBytes());
out.close();
}
});
server.createContext("/contato/consulta", new HttpHandler() {
@Override
public void handle(HttpExchange ex) throws IOException {
String responseText = "";
responseText += "O contato se chama " + contato.getNome()
+ " e seu telefone eh " + contato.getTelefone();
OutputStream out = ex.getResponseBody();
ex.sendResponseHeaders(200, responseText.length());
out.write(responseText.getBytes());
out.close();
}
});
}
public void start() {
server.start();
}
public void stop() {
server.stop(1000);
}
}