Aperçu de la communication HTTP
La communication HTTP a deux façons de publier et d'obtenir. Le premier envoie des données au serveur via l'entité du message HTTP. Essence Cependant, la demande GET n'est pas non préparée - la demande GET est principalement utilisée pour interroger (lire les ressources), ce qui est efficace. Les demandes de publication sont utilisées pour une haute sécurité telles que l'enregistrement, la connexion et la rédaction de données dans la base de données.
En plus de la publication et de l'obtention, il existe d'autres façons de communication HTTP! Veuillez vous référer à la méthode de la demande HTTP
Préparation avant le codage
Avant que le codage ne soit effectué, nous créons d'abord un servlet, qui reçoit les paramètres du client (nom et âge) et répond au client.
@WebServlet (UrlPatterns = {"/demo.do"}) La classe publique Demoservlet étend httpservlet {Prive static Long ServerVersionUID = 1l; "); Response.setContentType (" Text / html; charse = UTF-8 "); String Name = PRESSE (NAME"); GE "); Le service par get. Lève ServiceTException, ioException f-8 "); réponse.setContentType (" text / html; charset = utf-8 "); string name = request. GetParameter (" name "); string age = request.getParameter (" age ") ; Printwriter PW = Response.getWriter (); ;}}
Utilisez JDK pour implémenter la communication HTTP
Utilisez UrlConnection pour implémenter les demandes de GET
Examiner un objet java.net.url;
La méthode OpenConnection () de l'objet URL obtient un java.net.urlconnection;
Obtenez le flux d'entrée via la méthode getInputStream () de l'objet UrlConnection;
Lire le flux d'entrée;
Fermer les ressources.
Public void get () lance l'exception {url url = new URL ("http://127.0.0.1/http/demo.name=jack&age=10"); New BufferedReader (new inputStreamReAmReader (urlConnection.getInputStream (), "utf-8"); // Obtenez la ligne de streaming d'entrée = null; stringBuilder sb = new StringBuilder (); while (line = br.readline)! = Null) {sb.append (line + "/ n");} system.out.println (sb.toString ());}
Utilisez httpurlconnection pour implémenter la demande de post
Java.net.http "est une sous-classe de java.net.url, fournissant plus d'opérations sur HTTP (méthodes Getxxx et Setxxx). Cette classe définit une série de codes d'état HTTP:
Public Void Post () lance ioException {url URL = new URL ("http: //127.0.0.0.1/http/demo.do"); SetDoOutput (true); (httpurlconnection.getoutPutStream ()); FLASH (); ) {// lire les données sb.append (line + "/ n");} system.out.println (sb.toString ());}
Utilisez httpclient pour la communication HTTP
HTTPClient simplifie considérablement la mise en œuvre de la communication HTTP dans JDK.
Dépendance Maven:
<dependency> <proupId> org.apache.httpComponents </rom groupeid> <ArtifActid> httpClient </letefactId> <version> 4.3.6 </-version> </Dependency>
Faire une demande
Public void httpclientget () lève une exception {// Créer l'objet httpclient httpclient client = httpclients.createDefault ();) 40 "); // Appelez la méthode EXECUTE de l'objet httpClient pour obtenir une réponse httpResponse Response = client.execute (get); // appelle httpresspon La méthode de GetEntity de l'objet SE obtient l'entité de réponse httpetity httpety = réponse.getEntity ( );
Demande de poste
Public void httpclientPost () lance l'exception {// Créer l'objet httpclient httpclient client = httpclients.createdefault (); Pour le stockage de la paire de valeurs de clé de base (Paire de valeurs de clé de base: Nom-paramètre Valeur paramètre) <BasicNameValuePair> Paramètres = nouveau ArrayList <() (); (Nouveau BasicNameValuePair ("Age", "25"); // Ajouter un message Entity Post.SetEntity (new UrLencomedFormentity (Paramètres, "UTF- 8"))); Client.Exécute (post);
HTTPClient est un sous-article sous Apache Jakarta Common. HttpClient a été appliqué à de nombreux projets, tels que le HttpClient, qui sont bien connus sur Apache Jakarta, et HTMLUnit.