HTTP -Kommunikationsübersicht
Die HTTP -Kommunikation hat zwei Möglichkeiten, zu veröffentlichen und zu bekommen. Ersteres sendet Daten über die HTTP -Nachrichtenentität an den Server, was sehr sicher ist und die Datenübertragungsgröße nicht beschränkt. Text hat eine schlechte Vertraulichkeit und kann bis zu 2048 Zeichen übertragen Die GET -Anfrage ist jedoch nicht unvorbereitet -die Get -Anfrage wird hauptsächlich zur Abfrage (gelesene Ressourcen) verwendet, was effizient ist. Postanfragen werden für hohe Sicherheitsvorgänge wie Registrierung und Anmeldung und Schreiben von Daten in die Datenbank verwendet.
Zusätzlich zu Post und Get gibt es noch andere Möglichkeiten, mit HTTP zu kommunizieren! Bitte beachten Sie die Methode der HTTP -Anfrage
Vorbereitung vor dem Codieren
Bevor die Codierung durchgeführt wird, erstellen wir zunächst ein Servlet, das die Client -Parameter (Name und Alter) empfängt und auf den Client reagiert.
@WebServlet (urlpatterns = {"/demo.do"}) DemoServlet für öffentliche Klasse erweitert httpServlet {prive statische long serversionuid = 1l; "); Antwort Der Service durch GET. Löst servicetException, ioException f-8 "); response.setContentType (" text/html; charSet = utf-8 "); String name = request. GetParameter (" Name "); String Age = Anrequenz.GetParameter (" Age ") ; ;}}
Verwenden Sie JDK, um die HTTP -Kommunikation zu implementieren
Verwenden Sie die UrlConnection, um GET -Anfragen zu implementieren
Untersuchen ein java.net.url -Objekt;
Erhalten Sie eine java.net.urlConnection über die OpenConnection () -Methode des URL -Objekts;
Rufen Sie den Eingangsstrom über die Methode GetInputStream () des UrlConnection -Objekts ab.
Lesen Sie den Eingangsstrom;
Ressourcen schließen.
Public void () löst Ausnahme aus {url url = new url ("http://127.0.0.1/http/demo.name=jack&age=10"); New BufferedReader (neuer InputStreamReader (urlConnection.getInputStream (), "UTF-8"); ) {sb.append (Zeile + "/n");} System.out.println (sb.toString ());};};
Verwenden Sie die HttpurlConnection, um die Postanforderung zu implementieren
java.net.httpurlConnection ist eine Unterklasse von java.net.url, die mehr Operationen auf HTTP (GETXXX- und SETXXX -Methoden) bietet. Diese Klasse definiert eine Reihe von HTTP -Statuscodes:
Public void post () löscht ioException {url url = new URL ("http: //127.0.0.0.1/http/demo.do"); setDooutput (true) // die Verbindung festlegen, die httpurlConnection.setRequestMethod ("post") ausgeben kann. (httpurlConnection.getOutputStream ()); Flush (); ) {// Daten lesen sb.append (Zeile + "/n");} System.out.println (sb.toString ());};
Verwenden Sie HTTPClient für die HTTP -Kommunikation
HTTPClient vereinfacht die Implementierung der HTTP -Kommunikation in JDK erheblich.
Maven -Abhängigkeit:
<Depopenty> <gruppe> org.apache.httpcomponents </Groupid> <artifactId> httpclient </artifactid> <version> 4.3.6 </Version> </abhängig>
Anfrage erhalten
Public void httpclientget () löst Ausnahme aus {// das httpclient -Objekt httpclient Client = httpclients.CreateFault ()); 40 "); // Rufen Sie die Ausführungsmethode des Httpclient -Objekts auf, um die Antwort zu erhalten. ) // die EntityUtils-Toolklasse verwenden, um die Response-String-String-Ergebnisse zu erhalten, die enttyutils.toString (httpentity, "utf-8");
Postanfrage
public void httppclientPost () löst Ausnahme aus {// erstellen httpclient -Objekt httpclient client = httpclients.createdefault (); ; // Erstellen Sie einen Listen-Container zum Speichern des grundlegenden Schlüsselwertpaars (grundlegender Schlüsselwertpaar: Parameter-Parameter-Wert). San ")); parameters.add (neuer BasicNamevaluePair (" Alter "," 25 "); // Message Entity post.setentity (neue Urlencodedformentität (Parameter," UTF- 8 ")); // die Antwort erhalten und konvertieren Sie es in eine String httPesponse-Antwort = client.execute (post); ;}
HTTPCLIENT ist ein Unterprojekt unter Apache Jakarta Common, um effiziente, neuesten, featurereichen Client-Programmier-Toolkits bereitzustellen, die das HTTP-Protokoll unterstützen, und es unterstützt die neuesten Versionen und Vorschläge des HTTP-Protokolls. HTTPCLIENT wurde auf viele Projekte angewendet, z.