Este artículo explica los fragmentos de código detallado de las solicitudes de acceso postal, get y proxy para que Java implemente HTTP. Se comparte con usted para su referencia. El contenido específico es el siguiente
paquete com.snowfigure.kits.net; import java.io.bufferedReader; import java.io.ioException; import java.io.inputstream; import java.io.inputstreamreader; import java.io.outputstreamwriter; import java.io.unsupportedencodingException; import java.net.httpurlconnection; import java.net.InetSocketAddress; import java.net.proxy; import java.net.url; import java.net.urlconnection; import java.util.list; import java.util.map; /** * clase de herramienta de solicitud http * @author Snowfigure * @since 2014-8-24 13:30:56 * @version v1.0.1 */public class httprequestUtil {static boolean proxySet = false; cadena estática proxyHost = "127.0.0.1"; static int proxyport = 8087; / ** * Codificación * @param fuente * @return */ public static string urlencode (fuente de cadena, codificación de cadena) {String result = Source; intente {resultado = java.net.urlencoder.encode (fuente, code); } catch (UnsupportedEncodingException e) {E.PrintStackTrace (); regresar "0"; } resultado de retorno; } public static string urlencodeGBK (fuente de cadena) {String result = Source; intente {result = java.net.urlencoder.enDode (fuente, "gbk"); } catch (UnsupportedEncodingException e) {E.PrintStackTrace (); regresar "0"; } resultado de retorno; } / *** Inicie una solicitud HTTP para obtener el resultado de retorno* @param req_url Dirección de solicitud* @return* / public static string httprequest (string req_url) {stringbuffer buffer = new StringBuffer (); intente {url url = new url (req_url); Httpurlconnection httpurlconn = (httpurlconnection) url.openconnection (); httpurlconn.setDoOutput (falso); httpurlconn.setDoInput (verdadero); httpurlconn.setUsecaches (falso); httpurlconn.setRequestMethod ("get"); httpurlconn.connect (); // Convierta la secuencia de entrada devuelta en una cadena inputStream inputStream = httpurlconn.getInputStream (); InputStreamReader inputStreamReader = new InputStreamReader (inputStream, "UTF-8"); BufferedReader BufferedReader = new BufferedReader (inputStreamReader); Cadena str = nulo; while ((str = bufferedReader.readline ())! = null) {buffer.append (str); } bufferedReader.close (); inputStreamReader.Close (); // libera el recurso inputstream.close (); inputStream = nulo; httpurlconn.disconnect (); } catch (Exception e) {System.out.println (e.getStackTrace ()); } return buffer.ToString (); } / *** Enviar solicitud HTTP para obtener la secuencia de entrada de entrada devuelta* @param Solicitud de solicitud Dirección* @return inputStream* / public static inputStream httprequestio (string requestUrl) {inputStream inputStream = null; intente {url url = new URL (requestUrl); Httpurlconnection httpurlconn = (httpurlconnection) url.openconnection (); httpurlconn.setDoInput (verdadero); httpurlconn.setRequestMethod ("get"); httpurlconn.connect (); // Obtener el inputStream devuelto = httpurlconn.getInputStream (); } catch (Exception e) {E.PrintStackTrace (); } return inputStream; } /** * Envíe una solicitud a la URL especificada * * @param URL * URL para enviar la solicitud * @param param * Parámetros de solicitud, los parámetros de solicitud deben estar en forma de nombre1 = valor1 & name2 = value2. * @return URL Resultado Resultado del recurso remoto representado por el recurso remoto*/ public static string sendget (string url, string param) {string dult = ""; BufferedReader en = NULL; Prueba {String urlnameString = url + "?" + Param; Url realUrl = nueva url (urlamestring); // Abra la conexión entre la conexión URL URLConnection = RealUrl.openconnection (); // Establecer el atributo de solicitud general Connection.SetRequestProperty ("Aceptar", "*/*"); conexión.setRequestProperty ("Conexión", "Keep-Alive"); Connect.SetRequestProperty ("AGENT DE USUARIO", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"); // crear una conexión real de conexión.connect (); // Obtener todos los campos de encabezado de respuesta MAP <String, List <String>> MAP = Connection.GetheaderFields (); // Traverse todos los campos de encabezado de respuesta para (clave de cadena: map.keyset ()) {system.out.println (clave + "--->" + map.get (key)); } // Defina la secuencia de entrada de BufferedReader para leer la respuesta de la URL en = new BufferedReader (new InputStreamReader (Connection.GetInputStream ())); Línea de cadena; while ((line = in.readline ())! = null) {resultado += línea; }} Catch (Exception e) {System.out.println ("La excepción ocurrió al enviar una solicitud GET!" + E); E.PrintStackTrace (); } // Use finalmente bloquear para cerrar el flujo de entrada finalmente {try {if (in! = Null) {in.close (); }} catch (Exception e2) {e2.PrintStackTrace (); }} Resultado de retorno; } /** * Envíe una solicitud a la URL especificada * @param URL * URL para enviar la solicitud * @param parámetro * Parámetro de solicitud, el parámetro de solicitud debe estar en forma de nombre1 = valor1 & name2 = value2. * @param isProxy * si se debe usar el modo proxy * @@return Resultado del recurso remoto representado por @return */ public static string sendPost (string url, string param, boolean isproxy) {outputSreamWriter out = null; BufferedReader en = NULL; Resultado de cadena = ""; intente {url realUrl = new url (url); Httpurlconnection conn = null; if (isProxy) {// use el modo proxy @supesswarnings ("static-access") proxy proxy = new proxy (proxy.type.direct.http, nuevo inetSocketAddress (proxyHost, proxyPort)); conn = (httpurlconnection) realurl.openconnection (proxy); } else {conn = (httpurlconnection) realurl.openconnection (); } // Abra la conexión a la URL // Para enviar una solicitud de publicación, debe establecer las siguientes dos líneas conn.setDoOutput (verdaderas); Conn.setDoInput (verdadero); Conn.setRequestMethod ("Post"); // Publicar método // Establecer el atributo de solicitud general conn.setRequestProperty ("Aceptar", "*/*"); conn.setRequestProperty ("Conexión", "mantener alive"); Conn.setRequestProperty ("AGENT DE USUARIO", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"); conn.setRequestProperty ("Content-type", "Application/X-WWW-form-URLEncoded"); conn.connect (); // Obtenga la secuencia de salida correspondiente al objeto de UrlConnection out = new OutputStreamWriter (conn.getOutputStream (), "UTF-8"); // Enviar parámetro de solicitud out.write (param); // buffered out.flush () de flujo de salida; // Defina la secuencia de entrada de BufferedReader para leer la respuesta de URL en = new BufferedReader (new InputStreamReader (conn.getInputStream ())); Línea de cadena; while ((line = in.readline ())! = null) {resultado += línea; }} Catch (Exception e) {System.out.println ("Enviar publicación hay una excepción en la solicitud!"+E); E.PrintStackTrace (); } // Use finalmente bloqueos para cerrar la secuencia de salida y la secuencia de entrada finalmente {try {if (out! = Null) {out.close (); } if (in! = null) {in.close (); }} catch (ioException ex) {ex.printStackTrace (); }} Resultado de retorno; } public static void main (string [] args) {// demo: agente acceso string url = "http://api.adf.ly/api.php"; String para = "key = Youkeyid & YouUid = uid & anuncian_type = int & domain = adf.ly & url = http: //somewebsite.com"; Cadena sr = httprequestutil.sendPost (url, párr. System.out.println (SR); }}Espero que este artículo sea útil para que todos aprendan la programación de Java.