1. Check if a file was modified on the server
URL u =null;
long timestamp = 0;
try {
u = new URL(getDocumentBase(), "test.gif");
URLConnection uc = u.openConnection();
uc.setUseCaches(false);
/*
** use timestamp has a reference, re-open an URLConnection
** to the same file to check if the timestamp is different
** with the getLastModified() method.
*/
timestamp = uc.getLastModified();
}
catch (Exception e) {
e.printStackTrace();
}
}
2. Check if a page exists
import java.net.*;
import java.io.*;
public class URLUtils {
public static void main(String s[]) {
System.out.println(URLUtils.exists("https://www.maixuanviet.com/how-to-install-and-secure-phpmyadmin-on-ubuntu.vietmx"));
System.out.println(URLUtils.exists("https://www.maixuanviet.com/not-exists.vietmx"));
/*
output :
true
false
*/
}
public static boolean exists(String URLName){
try {
HttpURLConnection.setFollowRedirects(false);
// note : you may also need
// HttpURLConnection.setInstanceFollowRedirects(false)
HttpURLConnection con =
(HttpURLConnection) new URL(URLName).openConnection();
con.setRequestMethod("HEAD");
return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
}
catch (Exception e) {
e.printStackTrace();
return false;
}
}
}
The following is doing the same thing but this time we identify ourselves to a proxy.
import java.net.*;
import java.io.*;
import java.util.Properties;
public class URLUtils {
public static void main(String s[]) {
System.out.println(exists("http://www.maixuanviet.com"));
System.out.println(exists("http://www.luyenthithukhoa.vn"));
}
public static boolean exists(String URLName){
try {
Properties systemSettings = System.getProperties();
systemSettings.put("proxySet", "true");
systemSettings.put("http.proxyHost","proxy.mycompany.local") ;
systemSettings.put("http.proxyPort", "80") ;
URL u = new URL(URLName);
HttpURLConnection con = (HttpURLConnection) u.openConnection();
//
// it's not the greatest idea to use a sun.misc.* class
// Sun strongly advises not to use them since they can
// change or go away in a future release so beware.
//
sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder();
String encodedUserPwd =
encoder.encode("domain\\username:password".getBytes());
con.setRequestProperty
("Proxy-Authorization", "Basic " + encodedUserPwd);
con.setRequestMethod("HEAD");
System.out.println
(con.getResponseCode() + " : " + con.getResponseMessage());
return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
}
catch (Exception e) {
e.printStackTrace();
return false;
}
}
}
Done! Happy Coding!
Related posts:
Calling Stored Procedures from Spring Data JPA Repositories
Java Program to Construct an Expression Tree for an Postfix Expression
Giới thiệu thư viện Apache Commons Chain
Java Program to Perform the Unique Factorization of a Given Number
Spring RestTemplate Request/Response Logging
LIKE Queries in Spring JPA Repositories
Spring Boot - Securing Web Applications
Introduction to the Java NIO2 File API
Java Program to Convert a Decimal Number to Binary Number using Stacks
Transaction Propagation and Isolation in Spring @Transactional
Từ khóa throw và throws trong Java
Hướng dẫn sử dụng luồng vào ra nhị phân trong Java
Một số nguyên tắc, định luật trong lập trình
Java Program to find the peak element of an array using Binary Search approach
Spring REST with a Zuul Proxy
How To Serialize and Deserialize Enums with Jackson
Hướng dẫn sử dụng biểu thức chính quy (Regular Expression) trong Java
Template Engines for Spring
Java TreeMap vs HashMap
Tìm hiểu cơ chế Lazy Evaluation của Stream trong Java 8
Java Program to Implement Knapsack Algorithm
Spring Data – CrudRepository save() Method
Java Program to Find the Minimum Element of a Rotated Sorted Array using Binary Search approach
Introduction to Spring Data JPA
Java Program to Implement Stack
Mapping Nested Values with Jackson
Java Program to Implement Sorted Array
Java Concurrency Interview Questions and Answers
Java Program to do a Breadth First Search/Traversal on a graph non-recursively
Spring Boot - Actuator
Java Program to Evaluate an Expression using Stacks
Java Program to Find the Number of Ways to Write a Number as the Sum of Numbers Smaller than Itself