Cet article explique les extraits de code détaillés des demandes d'accès aux Post, Get et Proxy pour Java pour implémenter HTTP. Il est partagé avec vous pour votre référence. Le contenu spécifique est le suivant
package com.snowfigure.kits.net; Importer java.io.bufferedReader; Importer java.io.ioException; import java.io.inputStream; Importer java.io.inputStreamReader; import java.io.outputStreamWriter; Importer java.io.UNSUPPORTEDENCODINGException; import java.net.httpurlconnection; Importer java.net.inetsocketAddress; import java.net.proxy; Importer java.net.url; import java.net.urlconnection; import java.util.list; import java.util.map; / ** * http request tool class * @author snowfigure * @Since 2014-8-24 13:30:56 * @version v1.0.1 * / public class httprequequestUtil {static boolean proxyset = false; statique String proxyHost = "127.0.0.1"; static int proxyport = 8087; / ** * Encodage * @param source * @return * / public static String urlencode (string source, String Encode) {String result = source; try {result = java.net.urlencoder.encode (source, encoder); } catch (UnportEnCcodingException e) {e.printStackTrace (); return "0"; } Retour Résultat; } public static String UrLenCodeGBK (String Source) {String result = source; try {result = java.net.urlencoder.encode (source, "gbk"); } catch (UnportEnCcodingException e) {e.printStackTrace (); return "0"; } Retour Résultat; } / ** * Initiez une demande HTTP pour obtenir le résultat de retour * @param req_url Demande Adresse * @return * / public static String httpRequest (String req_url) {StringBuffer tamper = new StringBuffer (); essayez {url url = new url (req_url); HttpurlConnection httpurlConn = (httpurlConnection) url.openconnection (); httpurlConn.setDoOutput (false); httpurlConn.setDoInput (true); httpurlConn.seTUsecaches (false); httpurlConn.setRequestMethod ("get"); httpurlConn.Connect (); // Convertissez le flux d'entrée renvoyé en une chaîne InputStream inputStream = httpurlConn.getInputStream (); InputStreamReader inputStreamReader = new inputStreamReader (inputStream, "utf-8"); BufferedReader BufferedReader = new BufferedReader (InputStreamReader); String str = null; while ((str = bufferedReader.readline ())! = null) {buffer.append (str); } bufferedReader.close (); inputStreamReader.close (); // Libérez la ressource inputStream.close (); inputStream = null; httpurlConn.disconnect (); } catch (exception e) {System.out.println (e.getStackTrace ()); } return buffer.toString (); } / ** * Envoyez la demande http pour obtenir le flux d'entrée renvoyé * @param requestrl request address * @return inputStream * / public static inputStream httpRequeStio (String requestrl) {inputStream inputStream = null; try {url url = new URL (requestUrl); HttpurlConnection httpurlConn = (httpurlConnection) url.openconnection (); httpurlConn.setDoInput (true); httpurlConn.setRequestMethod ("get"); httpurlConn.Connect (); // obtient le renvoyé inputStream = httpurlConn.getInputStream (); } catch (exception e) {e.printStackTrace (); } return inputStream; } / ** * Envoyez une demande à l'URL spécifiée * * @param URL * URL Pour envoyer la demande * @param paramètres de la demande, les paramètres de demande doivent être dans le formulaire de name1 = value1 & name2 = value2. * @return URL Résultat Résultat de la ressource distante représentée par la ressource distante * / public static String sendGet (String URL, String Param) {String result = ""; BufferedReader dans = null; essayez {String urlNmestring = url + "?" + param; URL REALURL = NOUVELLE URL (URLNAMESTRING); // Ouvrez la connexion entre la connexion URL URLConnection = realUrl.OpenConnection (); // Définissez la connexion d'attribut de demande générale.SetRequestProperty ("accepter", "* / *"); connection.setRequestProperty ("connexion", "keep-alive"); connection.setRequestProperty ("User-Agent", "Mozilla / 4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"); // Créer une connexion de connexion réelle.Connect (); // Obtenez tous les champs d'en-tête de réponse map <string, list <string >> map = connection.geTheaderFields (); // Traverse tous les champs d'en-tête de réponse pour (clé de chaîne: map.KeySet ()) {System.out.println (key + "--->" + map.get (key)); } // Définissez le flux d'entrée BufferedReader pour lire la réponse de l'URL dans = new BufferedReader (new InputStreamReader (connection.getInputStream ())); Ligne de chaîne; while ((line = in.readline ())! = null) {result + = line; }} catch (exception e) {System.out.println ("Exception s'est produite lors de l'envoi d'une demande de GET!" + E); e.printStackTrace (); } // Utiliser enfin le bloc pour fermer le flux d'entrée enfin {try {if (in! = Null) {in.close (); }} catch (exception e2) {e2.printStackTrace (); }} Retour Résultat; } / ** * Envoyez une demande à l'URL spécifiée * @param URL * URL pour envoyer la demande * @param paramètre param * de la demande, le paramètre de demande doit être dans le formulaire de name1 = value1 & name2 = value2. * @param isproxy * Que ce soit pour utiliser le mode proxy * @return Résultat de la ressource distante représentée par le @return * / public static String sendPost (String URL, String Param, boolean isproxy) {OutputStreamWriter out = null; BufferedReader dans = null; Résultat de chaîne = ""; essayez {url realUrl = new url (url); Httpurlconnection conn = null; if (isproxy) {// Utilisez le mode proxy @SuppressWarnings ("static-access") proxy proxy = new proxy (proxy.type.direct.http, new Inetsocketddress (proxyhost, proxyport)); Conn = (httpurlConnection) realUrl.openconnection (proxy); } else {conn = (httpurlconnection) realUrl.openconnection (); } // Ouvrez la connexion à l'URL // Pour envoyer une demande de message, vous devez définir les deux lignes suivantes Conn.SetDoOutput (true); Conn.SetDoInput (true); Conn.SetRequestMethod ("Post"); // POST Method // Définissez l'attribut général de la demande Conn.SetRequestProperty ("accepter", "* / *"); Conn.SetRequestProperty ("Connexion", "Keep-Alive"); Conn.SetRequestProperty ("User-Agent", "Mozilla / 4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"); Conn.SetRequestProperty ("Content-Type", "Application / X-Www-Form-Urlencoded"); Conn.Connect (); // obtient le flux de sortie correspondant à l'objet UrlConnection OUT = new OutputStreamWriter (Conn.getOutputStream (), "UTF-8"); // Envoyer un paramètre de demande Out.Write (param); // tamponné Out.flush () du flux de sortie de flux; // Définissez le flux d'entrée BufferedReader pour lire la réponse URL dans = new BufferedReader (new InputStreamReader (Conn.getInputStream ())); Ligne de chaîne; while ((line = in.readline ())! = null) {result + = line; }} catch (exception e) {System.out.println ("Envoyer la publication Il y a une exception dans la demande!" + e); e.printStackTrace (); } // Utiliser les blocs enfin pour fermer le flux de sortie et le flux d'entrée enfin {try {if (out! = Null) {out.close (); } if (in! = null) {in.close (); }} catch (ioException ex) {ex.printStackTrace (); }} Retour Résultat; } public static void main (String [] args) {// Demo: agent access string url = "http://api.adf.ly/api.php"; String para = "key = youkeyid & youuid = uid & publicit_type = int & domain = adf.ly & url = http: //somewebsite.com"; String sr = httprequestUtil.sendPost (URL, para, true); System.out.println (SR); }}J'espère que cet article sera utile à tout le monde d'apprendre la programmation Java.