import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import org.apache.cxf.common.util.Base64Utility; public class PDF_Alchemy_Status { private static final String ACCESS_KEY_ID="xxxxxxxxxxxxxxxxxxxx"; private static final String SECRET_ACCESS_KEY="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; private static final String HMAC_SHA1="HMACSHA1"; public static void main(String[] args) { try { // Generate the HMAC-SHA1 signature. SimpleDateFormat dateFormat=new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss 'GMT'"); dateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); String date=dateFormat.format(new Date()); String request='/'+ACCESS_KEY_ID+"/status"; String clearText="GET\n"+ACCESS_KEY_ID+'\n'+date+'\n'+request; Mac mac = Mac.getInstance(HMAC_SHA1); mac.init(new SecretKeySpec(SECRET_ACCESS_KEY.getBytes(),HMAC_SHA1)); String signature=Base64Utility.encode(mac.doFinal(clearText.getBytes())); // Request the status from PDF Alchemy. URLConnection conn=(new URL("http://www.pdfalchemy.com"+request)).openConnection(); conn.setRequestProperty("date",date); conn.setRequestProperty("X-PDF-Alchemy-Signature",signature); BufferedReader reader=new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line=reader.readLine())!=null) System.out.println(line); reader.close(); } catch (Exception e) { System.out.println(e.toString()); } } }