package cz.rb.premium; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; import java.net.URL; import java.nio.charset.StandardCharsets; import java.security.KeyStore; import java.util.stream.Collectors; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.KeyManagerFactory; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSocketFactory; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; import com.google.gson.JsonParser; public class PremiumAPIClient { private static final String CLIENT_CERT_FILENAME = "xxx"; private static final String CLIENT_CERT_PASSWORD = "xxx"; private static final String X_IBM_CLIENT_ID = "xxx"; public static void main(String[] args) throws Exception { KeyStore keyStore = KeyStore.getInstance("pkcs12"); keyStore.load(new FileInputStream(CLIENT_CERT_FILENAME), CLIENT_CERT_PASSWORD.toCharArray()); KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); kmf.init(keyStore, CLIENT_CERT_PASSWORD.toCharArray()); SSLContext ctx = SSLContext.getInstance("TLS"); ctx.init(kmf.getKeyManagers(), null, null); SSLSocketFactory sslSocketFactory = ctx.getSocketFactory(); // URL url = new URL("https://api.rb.cz/rbcz/premium/mock/accounts"); URL url = new URL("https://api.rb.cz/rbcz/premium/api/accounts"); HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); conn.setSSLSocketFactory(sslSocketFactory); conn.setRequestProperty("Content-Type", "application/json"); conn.setRequestProperty("X-IBM-Client-Id", X_IBM_CLIENT_ID); conn.setRequestProperty("X-Request-Id", Long.toString(System.currentTimeMillis())); conn.connect(); System.out.println("Response status: " + conn.getResponseCode() + " " + conn.getResponseMessage()); System.out.println("Response headers: " + conn.getHeaderFields()); String text = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8)).lines().collect(Collectors.joining("\n")); Gson gson = new GsonBuilder().setPrettyPrinting().create(); JsonElement je = JsonParser.parseString(text); System.out.println(gson.toJson(je)); } }