Este artículo estudia principalmente el problema del tiempo de espera de la conexión del rastreador de la red Java, de la siguiente manera.
En los rastreadores de red, a menudo se encuentran los siguientes errores. Es decir, la conexión se agotó. Para este problema, la solución general es: establecer el tiempo de conexión y el tiempo de solicitud para un período de tiempo más largo. Si se produce el tiempo de espera de la conexión, vuelva a solicitar [Establezca el número de requisitos].
Excepción en el hilo "principal" java.net.connectexception: Connection horario: conectar
El siguiente código es un programa de muestra que utiliza httpclient para resolver el tiempo de espera de conexión. Vaya directamente al programa.
paquete daili; import java.io.ioException; import java.net.uri; importar org.apache.http.httprequest; import org.apache.http.httpesponse; import og.apache.http.client.client.protocolexception; import org.apache.http.client.client.client.methods. org.apache.http.client.params.cookiepolicy; import org.apache.http.client.protocol.clientcontext; import org.apache.http.impl.client.basiccookiestore; import org.apache.http.Impl.Client.ClosablehttpClient; import; importar; importar; importar; import org.apache.http.impl.client.defaulthttpClient; import org.apache.http.impl.client.defaulthttpclient2; import og.apache.http.params.httpconnectionparams; import og.apache.http.params.httparams; importar; import org.apache.http.protocol.basichttpcontext; import org.apache.http.protocol.executionContext; import org.apache.http.protocol.httpcontext; import Tecnología*[email protected]*/Public Class test1 {public static void main (string [] args) lanza ClientProtocolexception, ioexception, interruptedException {getrawhtml ("http://club.autohome.com.cn/bbs/forum-c-2098-1.html#pvareaiD=103447");} public static string getrawhtml (string url) lanza clientprotocolexception, iOexception httpClient = new DeFaulThttpClient (); httpclient.getParams (). SetParameter ("http.protocol.cookie-Policy", cookiepolicy.browser_compatibility); // set de parámetros httpParams = httpClient.getparams (); //xel HttpconnectionParams.SetConnectionTimeOut (params, 6000); httpconnectionParams.setSotIMeOut (params, 6000*20); // El tiempo de espera de TIMEOUTS DEFAULTHTTPREQUESTRINTRYHANDLER DHR = new DeFaUaLTTTPRequestryRyler (5, verdadero); BASICHTTTPCONTEXT (); httPRequest request2 = (httprequest) localContext.getAttribute (ejecutionContext.http_request); httpclient.SethttprequestRetryryRyler (dhr); básicocookiesteSel BASICCLIENTCOOKIE2 ("Content-type", "Text/html; charset = utf-8"); BasicClientCookie2 Cookie1 = new BasicClientCookie2 ("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) Applewebkit/537.36 (Khtml, como Gecko) CHROME/52.10. Safari/537.36 "); Cookiestore.addcookie (Cookie); Cookiestore.addcookie (Cookie1); localContext.SetTribute (ClientContext.cookie_store, Cookiestore); httpget request = new httpget (); request.seturi (uri.create (url)); rawhtml = ""; respuesta = httpclient.execute (request, localContext); int statusCode = respuesta.getStatusline (). getStatUscode (); // Obtener el código de estado de respuesta System.out.println (statusCode); if (statuscode == 200) {// statuscode 200 indica que la respuesta es exitosa // obtener el contenido de entidad rawhtml = entityUtils.toString (respuesta.getEntity ()); System.out.println (rawHtml); // emite el contenido de entidad entityUTIls.consume (respuesta.getEntity ()); // Entidad consumidor} else {// Cerrar la entidad de transmisión de httpentityEntityUtils.consume (respuesta.getEntity ()); // consume el thread.sleep (20*60*1000); Break de 30 minutos} httpclient.close (); system.out.println (rawhtml); return rawhtml;}}
resultado:
Resumir
Lo anterior es todo el contenido de este artículo sobre el código de solución de tiempo de espera de conexión de Crawler Web Java Web, espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!