Este artigo explica os trechos de código detalhados das solicitações de acesso, GET e Acesso de proxy para que o Java implemente o HTTP. É compartilhado com você para sua referência. O conteúdo específico é o seguinte
pacote com.snowfigure.kits.net; importar java.io.bufferedReader; importar java.io.ioException; importar java.io.inputStream; importar java.io.inputStreamReader; importar java.io.OutputStreamWriter; importar java.io.unsupportEnCodingException; importar java.net.httpurlConnection; importar java.net.inetsocketaddress; importar java.net.proxy; importar java.net.url; importar java.net.urlConnection; importar java.util.list; importar java.util.map; /** * Classe de ferramenta de solicitação http * @Author Snowfigure * @since 2014-8-24 13:30:56 * @version v1.0.1 */public class httprequestutil {estático boolean proxyset = false; String estática proxyhost = "127.0.0.1"; estático int proxyport = 8087; / ** * codificação * @param fonte * @return */ public static string urlencode (fonte da string, string cody) {string result = origem; tente {resultado = java.net.urlencoder.encode (origem, codificação); } Catch (UnsupportEdEncodingException e) {E.PrintStackTrace (); retornar "0"; } resultado de retorno; } public static string urlencodegbk (string fonte) {string resultado = fonte; tente {resultado = java.net.urlencoder.encode (fonte, "gbk"); } Catch (UnsupportEdEncodingException e) {E.PrintStackTrace (); retornar "0"; } resultado de retorno; } / *** Inicie uma solicitação http para obter o resultado de retorno* @param req_url endereço de solicitação* @return* / public static string httprequest (string req_url) {stringBuffer buffer = new StringBuffer (); tente {url url = novo url (req_url); HttpurlConnection httpurlconn = (httpurlConnection) url.openconnection (); httpurlconn.setdoOutput (false); httpurlconn.setdoinput (true); httpurlconn.setusecaches (false); httpurlconn.setRequestMethod ("get"); httpurlconn.connect (); // Converta o fluxo de entrada retornado em um string inputStream inputStream = httpurlconn.getInputStream (); InputStreamReader inputStreamReader = new InputStreamReader (InputStream, "UTF-8"); BufferReader buffaredReader = new BufferredReader (InputStreamReader); String str = null; while ((str = bufferredreader.readline ())! = null) {buffer.append (str); } bufferreader.close (); inputStreamReader.close (); // Libere o recurso inputStream.close (); inputStream = nulo; httpurlconn.disconnect (); } catch (Exceção e) {System.out.println (E.GetStackTrace ()); } retornar buffer.toString (); } / *** Envie a solicitação http para obter o fluxo de entrada retornado* @param requesturl Solicitação endereço* @return inputStream* / public estático inputStream httprequestio (string requesturl) {inputStream inputStream = null; tente {url url = novo url (requesturl); HttpurlConnection httpurlconn = (httpurlConnection) url.openconnection (); httpurlconn.setdoinput (true); httpurlconn.setRequestMethod ("get"); httpurlconn.connect (); // obtém o inputStream retornado = httpurlconn.getInputStream (); } catch (Exceção e) {e.printStackTrace (); } retornar inputStream; } /** * Envie uma solicitação para o url especificado * * @param url * url para enviar a solicitação * @param param * parâmetros de solicitação, os parâmetros de solicitação devem estar na forma de nome1 = value1 & name2 = value2. * @return URL Resultado do recurso remoto representado pelo recurso remoto*/ public static string sendget (string url, string param) {string result = ""; BufferredReader in = null; tente {string urlnamestring = url + "?" + param; Url realurl = novo url (urlnamestring); // Abra a conexão entre a conexão de URLConnection URL = realUrl.Openconnection (); // Defina o atributo de solicitação geral Connection.SetRequestProperty ("aceitar", "*/*"); Connection.SetRequestProperty ("Connection", "Keep-Alive"); Connection.setRequestProperty ("User-Agent", "Mozilla/4.0 (compatível; MSIE 6.0; Windows NT 5.1; Sv1)"); // Crie uma conexão de conexão real.connect (); // Obtenha todos os campos de cabeçalho de resposta mapa <string, list <string>> map = Connection.getheadeRFields (); // Atravesse todos os campos de cabeçalho de resposta para (chave de string: map.keyyset ()) {System.out.println (key + "--->" + map.get (key)); } // Defina o fluxo de entrada do BufferErader para ler a resposta do URL em = new BufferredReader (new InputStreamReader (Connection.getInputStream ())); Linha de string; while ((line = in.readline ())! = null) {resultado += line; }} Catch (Exceção e) {System.out.println ("Exceção ocorreu ao enviar uma solicitação GET!" + E); E.PrintStackTrace (); } // Use finalmente bloco para fechar o fluxo de entrada finalmente {tente {if (in! = Null) {in.close (); }} Catch (Exceção E2) {E2.PrintStackTrace (); }} Retornar resultado; } /** * Envie uma solicitação para o URL especificado * @param url * url para enviar a solicitação * @param param * parâmetro de solicitação, o parâmetro de solicitação deve estar na forma de nome1 = value1 & name2 = value2. * @param isProxy * se deve usar o modo proxy * @return Resultado Respondo do recurso remoto representado pelo @return */ public static string sendPost (string url, string param, boolean isProxy) {outputStreamWriter out = null; BufferredReader in = null; String result = ""; tente {url realurl = novo url (url); HttpurlConnection Conn = null; if (isProxy) {// use o modo proxy @suppresswarnings ("static-access") proxy proxy = new proxy (proxy.type.direct.http, new inetSocketAddress (proxyhost, proxyport)); Conn = (httpurlConnection) realurl.openconnection (proxy); } else {conn = (httpurlConnection) realurl.openconnection (); } // Abra a conexão com o URL // Para enviar uma solicitação de postagem, você deve definir as duas linhas a seguir Conn.SetDoOutput (true); Conn.SetDoinput (true); Conn.SetRequestMethod ("post"); // post métod // Defina o atributo de solicitação geral Conn.SetRequestProperty ("aceitar", "*/*"); Conn.SetRequestProperty ("Connection", "Keep-Alive"); Conn.SetRequestProperty ("User-Agent", "Mozilla/4.0 (compatível; MSIE 6.0; Windows NT 5.1; Sv1)"); Conn.SetRequestProperty ("Content-Type", "Application/X-Www-Form-Urlencoded"); Conn.Connect (); // Obtenha o fluxo de saída correspondente ao objeto URLConnection out = new OtpitStreamWriter (Conn.getOutputStream (), "UTF-8"); // Enviar parâmetro de solicitação fora.Write (param); // buffer out.flush () do fluxo de saída de descarga; // Defina o fluxo de entrada do BufferReader para ler a resposta do URL em = new BufferredReader (new InputStreamReader (Conn.getInputStream ())); Linha de string; while ((line = in.readline ())! = null) {resultado += line; }} catch (Exceção e) {System.out.println ("Enviar post Há uma exceção na solicitação!"+e); E.PrintStackTrace (); } // Use finalmente blocos para fechar o fluxo de saída e o fluxo de entrada finalmente {tente {if (out! = Null) {out.close (); } if (in! = null) {in.close (); }} catch (ioexception ex) {ex.printStackTrace (); }} Retornar resultado; } public static void main (string [] args) {// Demo: agente Access String url = "http://api.adf.ly/api.php"; String para = "key = youKeyId & youuid = uid & anúncio_type = int & domain = adf.ly & url = http: //womewebsite.com"; String sr = httprequestutil.sendPost (url, parágrafo, verdadeiro); System.out.println (sr); }}Espero que este artigo seja útil para que todos aprendam a programação Java.