Get it on Google Play

Conectándonos a servicios Web en Java con Jsoup

29-07-2017
 
Conectar

Conectar

Desde que tengo el canal de Youtube parece que publico menos cosas en mi blog, pero nada mas lejos de mi intención. En el blog seguiré publicando cosas muy técnicas(Para muy técnicos) y en el canal de Youtube iré publicando mas opinión, management, etc. Después de esta pequeña reflexión, vamos al tajo:

Jsoup es una librería Java para conectarnos a servicios web del mundo real que descubrí hace poco por una necesidad que tuve(Aunque ya había oído hablar de ella). Luego os hablaré de esta necesidad.

Jsoup nos permite conectarnos a servicios web, descargarnos HTML y trabajar con el al mas puro estilo Jquery. Pero sobretodo es muy ágil de utilizar. Por ejemplo, aquí os dejo un trozo de código para comparar lo mismo que yo antes hacia sin Jsoup y con Jsoup:

/* Descarga servicio REST sin Jsoup */
StringBuilder output = new StringBuilder();

DefaultHttpClient httpClient = new DefaultHttpClient();
HttpUriRequest postRequest = new HttpGet(url);

HttpResponse response = httpClient.execute(postRequest);
BufferedReader br = new BufferedReader(new InputStreamReader(
			(response.getEntity().getContent())));

String o;
while ((o = br.readLine()) != null) {
	output.append(o);
	}

httpClient.getConnectionManager().shutdown();
String doc=output.toString();

/* Descarga servicio Web con Jsoup */
String doc = Jsoup.connect( url ).ignoreContentType(true).execute().body();

Veis la diferencia de código! Que elegancia, que rapidez, que fácil de interpretar.

Además, un punto muy a favor de Jsoup(Os acordáis de mi necesidad): Resulta que Java es muy ‘crítico’ con el tema de los certificados de seguridad, si necesitamos obviar que un certificado de seguridad no es válido(A veces pasa) tienes que hacer muchos inventos. Con Jsoup simplemente añadir ‘.validateTLSCertificates(false)’:

String doc = Jsoup.connect( url ).validateTLSCertificates(false).ignoreContentType(true).execute().body();

Finalmente, si queremos utilizarlo usando Gradle(Es fácil convertir esto a Maven), simplemente añadir a vuestro fichero ‘build.gradle’:

compileOnly group: "org.jsoup", name: "jsoup", version: "1.8.3"

Leave a Reply

© Albert Coronado Calzada