En nuestro código de ejemplo vamos a utilizar la clase HttpURLConnection la cual extiende de la clase URLConnection y da soporte especifico al protocolo HTTP.
Ejemplo:
public static String httpGet(String stringUrl) throws HttpGetException{
URL url;
try {
url = new URL(stringUrl);
} catch (MalformedURLException e2) {
throw new HttpGetException(e2.getCause());
}
HttpURLConnection urlConnection = null;
String dataJson = "";
try {
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setConnectTimeout(5000); // set timeout to 5 seconds
BufferedReader in = new BufferedReader(new InputStreamReader(
urlConnection.getInputStream(), StandardCharsets.UTF_8));
StringBuffer sb = new StringBuffer();
String inputLine;
while ((inputLine = in.readLine()) != null) {
sb.append(inputLine);
}
dataJson = sb.toString();
} catch (java.net.SocketTimeoutException e) {
throw new HttpGetException(e);
} catch (IOException e) {
if (urlConnection instanceof HttpURLConnection) {
HttpURLConnection httpConn = (HttpURLConnection) urlConnection;
InputStream in = null;
try {
in = httpConn.getErrorStream();
StringBuffer buf = new StringBuffer();
byte[] cbuf = new byte[1024 * 64];
int r = in.read(cbuf);
while (r > -1) {
if (r > 0) {
buf.append(new String(cbuf, 0, r));
}
r = in.read(cbuf);
}
YoutubeJsonError jsonError = new YoutubeJsonError(
buf.toString());
throw new HttpGetException(jsonError.getMessage());
} catch (IOException e1) {
e1.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
} finally {
if (urlConnection != null) {
urlConnection.disconnect();
}
}
return dataJson;
}
}
Probando el método con la siguiente url:http://ip.jsontest.com/
y con el metodo:
System.out.println(dataJson);
Deberia mostrar el siguiente texto:
{"ip": "8.8.8.8"} donde los numeros ochos representaran la direccion de tu ip en la internet.
No hay comentarios:
Publicar un comentario