Java 11+ HttpClient Integration
Modern Java integration using java.net.http.HttpClient and Jackson ObjectMapper for enterprise backend services.
Java 11+ HttpClient Integration
Use Java's modern java.net.http.HttpClient to interact with Shortyy without external heavyweight HTTP libraries.
Java 11+ Implementation
java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;
public class ShortyyService {
private static final String API_KEY = System.getenv("SHORTYY_API_KEY");
private static final String BASE_URL = "https://api.shortyy.com/v1";
private final HttpClient httpClient = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
public String createShortLink(String destinationUrl, String expiresIn) throws Exception {
String jsonPayload = String.format("{"url":"%s","expires_in":"%s"}", destinationUrl, expiresIn);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(BASE_URL + "/links"))
.header("Authorization", "Bearer " + API_KEY)
.header("Content-Type", "application/json")
.header("Accept", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
.build();
HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() == 429) {
throw new RuntimeException("Rate limit exceeded on Shortyy. Check Retry-After header.");
}
if (response.statusCode() != 201) {
throw new RuntimeException("API error " + response.statusCode() + ": " + response.body());
}
return response.body();
}
}