Un ejemplo básico para determinar si un determinado URL redirecciona a otra dirección.
La función de esta clase obtiene el código de respuesta de la conexión HTTP y si es cualquiera de los códigos de redireccionamiento: 301/302/303, obtiene la dirección redireccionada del encabezado "Location".
import java.net.HttpURLConnection;
import java.net.URL;
public class URLUtils {
/**
* Prints the redirect URL for the provided input URL (if it applies).
* @param url
*/
public static void printRedirect(String url) {
try {
URL urlToPing = new URL(url);
HttpURLConnection urlConn = (HttpURLConnection) urlToPing
.openConnection();
// Needed to check if it is a redirect.
urlConn.setInstanceFollowRedirects(false);
// It's any of these response codes: 301/302/303
if(urlConn.getResponseCode() == HttpURLConnection.HTTP_MOVED_PERM
|| urlConn.getResponseCode() == HttpURLConnection.HTTP_MOVED_TEMP
|| urlConn.getResponseCode() == HttpURLConnection.HTTP_SEE_OTHER) {
System.out.println("URL <" + url + "> redirects to: <"
+ urlConn.getHeaderField("Location") + ">, Response Code: " +
+ urlConn.getResponseCode());
}else {
System.out.println("URL <" + url + "> has no redirect, Response Code: "
+ urlConn.getResponseCode());
}
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
URLUtils.printRedirect("http://www.google.com");
URLUtils.printRedirect("http://www.crjug.org");
}
}
Salida:
URL <http://www.google.com> redirects to: <http://www.google.co.cr/>, Response Code: 302
URL <http://www.crjug.org> has no redirect, Response Code: 200
Muy buen ejemplo mop (Y)
ResponderEliminardeberia tirarlo al crjug si no es que ya esta ahi!