post client - Creare un semplice server HTTP con Java?





example get (10)


Questo è come andrei su questo:

  1. Avviare un ascolto ServerSocket (probabilmente sulla porta 80).
  2. Una volta ricevuta una richiesta di connessione, accetta e passa a un altro thread / processo (ciò lascia il tuo ServerSocket disponibile per continuare ad ascoltare e accettare altre connessioni).
  3. Analizza il testo della richiesta (in particolare, le intestazioni in cui vedrai se è un GET o POST e i parametri passati.
  4. Rispondi con le tue intestazioni ( Content-Type , ecc.) E l'HTML.

Trovo utile utilizzare Firebug (in Firefox) per vedere esempi di intestazioni. Questo è ciò che vuoi emulare.

Prova questo link: - Server multithread in Java

Qual è il modo più semplice per creare un semplice server HTTP con Java? Ci sono biblioteche in comune per facilitare questo? Devo solo rispondere a GET/POST e non posso usare un server delle applicazioni.

Qual è il modo più semplice per realizzare questo?




Usa il Jetty . Ecco un tutorial per l' incorporamento di Jetty . (Ecco un tutorial obsoleto .)

Il jetty è piuttosto leggero, ma fornisce un servlet container, che potrebbe contraddire il tuo requisito rispetto all'uso di un "application server".

Puoi incorporare il server Jetty nella tua applicazione. Il jetty consente le opzioni del contenitore della servlet O EERER incorporato.




Ho scritto un tutorial che spiega come scrivere un semplice server HTTP un po 'di tempo fa in Java. Spiega cosa sta facendo il codice e perché il server è scritto in questo modo mentre il tutorial procede. Potrebbe essere utile http://kcd.sytes.net/articles/simple_web_server.php







L'incorporamento di Tomcat è relativamente indolore man mano che le cose vanno. Here's un buon riferimento su di esso.







Sono sorpreso che questo esempio non sia qui:

http://hc.apache.org/httpcomponents-core-ga/httpcore/examples/org/apache/http/examples/ElementalHttpServer.java

EDIT >> Il link sopra non è raggiungibile. Ecco un estratto dall'esempio POST seguito dal link agli esempi HTTP.

 if (!conn.isOpen()) {
        Socket socket = new Socket(host.getHostName(), host.getPort());
        conn.bind(socket);
    }
    BasicHttpEntityEnclosingRequest request = new
    BasicHttpEntityEnclosingRequest("POST",
    "/servlets‐examples/servlet/RequestInfoExample");
    request.setEntity(requestBodies[i]);
    System.out.println(">> Request URI: " + request.getRequestLine().getUri());
    httpexecutor.preProcess(request, httpproc, coreContext);
    HttpResponse response = httpexecutor.execute(request, conn, coreContext);
    httpexecutor.postProcess(response, httpproc, coreContext);
    System.out.println("<< Response: " + response.getStatusLine());
    System.out.println(EntityUtils.toString(response.getEntity()));
    System.out.println("==============");
    if (!connStrategy.keepAlive(response, coreContext)) {
    conn.close();
    } else {
    System.out.println("Connection kept alive...");
    }

http://hc.apache.org/httpcomponents-core-ga/httpcore/examples/org/apache/http/examples/




Jetty è un ottimo modo per incorporare facilmente un server HTTP. Supporta il proprio modo semplice per collegare i gestori ed è un server app J2EE completo se hai bisogno di più funzionalità.







Se hai bisogno di usare Content-Type = x-www-urlencoded-form allora NON usare FormDataCollection come parametro: In asp.net Core 2+ FormDataCollection non ha costruttori predefiniti richiesti dai Formatters. Utilizza invece IFormCollection:

 public IActionResult Search([FromForm]IFormCollection type)
    {
        return Ok();
    }




java http post get