ScreenshotMAX with Java
Use Java’s built-in HTTP client (java.net.http
) to make signed or direct API calls.
Basic GET Screenshot
import java.io.*;
import java.net.*;
public class Main {
public static void main(String[] args) throws Exception {
String accessKey = "YOUR_ACCESS_KEY";
String api = "https://api.screenshotmax.com/v1/screenshot";
String params = String.format("access_key=%s&url=%s&format=png",
accessKey,
URLEncoder.encode("https://example.com", "UTF-8"));
URL url = new URL(api + "?" + params);
InputStream in = url.openStream();
Files.copy(in, Path.of("screenshot.png"), StandardCopyOption.REPLACE_EXISTING);
in.close();
System.out.println("Image saved to screenshot.png");
}
}
HMAC-Signed GET Screenshot
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.io.InputStream;
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
public class ScreenshotMAX {
public static void main(String[] args) throws Exception {
String accessKey = "YOUR_ACCESS_KEY";
String secretKey = "YOUR_SECRET_KEY";
String api = "https://api.screenshotmax.com/v1/screenshot";
String urlParam = URLEncoder.encode("https://example.com", "UTF-8");
String format = "png";
String query = "url=" + urlParam + "&format=" + format + "&access_key=" + accessKey;
String signature = sign(secretKey, query);
String finalURL = api + "?" + query + "&signature=" + signature;
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(finalURL))
.GET()
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse<InputStream> response = client.send(request, HttpResponse.BodyHandlers.ofInputStream());
Files.copy(response.body(), Path.of("screenshot.png"));
System.out.println("Screenshot saved to screenshot.png");
}
private static String sign(String key, String message) throws Exception {
Mac hmac = Mac.getInstance("HmacSHA256");
hmac.init(new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "HmacSHA256"));
byte[] hash = hmac.doFinal(message.getBytes(StandardCharsets.UTF_8));
StringBuilder hex = new StringBuilder();
for (byte b : hash) {
hex.append(String.format("%02x", b));
}
return hex.toString();
}
}
Next Steps
- Explore other API options like HTML to PDF, animated screenshots, or web scraping.
- Create scheduled recurring screenshots via Scheduled Tasks API
Support
For questions, issues, or feature requests, please contact our support team at support@screenshotmax.com.