在 Java 應用程式中進行 REST 呼叫

您可以使用標準 Java™ 方法來存取 TADDM REST API。

若要使用 HTTP 連線安全地存取 REST 介面,您必須先將 jssecacerts.cert 安全憑證複製到用戶端系統。 此檔案位於 TADDM 伺服器上的 $COLLATION_HOME/etc 目錄中。

下列範例顯示如何從 Java 程式存取 REST API。

若要從 Java 程式存取 REST API ,請使用標準 Java 方法進行 HTTP 通訊。
此範例使用安全 HTTP 連線來存取 REST API:
HostnameVerifier hv = new HostnameVerifier() {
             public boolean verify(String urlHostName, SSLSession session) {
                System.out.println("Warning: URL Host: "+urlHostName+" vs. "
                  +session.getPeerHost());
                return true;
             }
         };

         // set this property to the location of the cert file
         System.setProperty("javax.net.ssl.trustStore", "jssecacerts.cert");

         HttpsURLConnection.setDefaultHostnameVerifier(hv);
         URL url = new
           URL("https://cab.tivlab.austin.ibm.com:9431/rest/model/"+
               "Repository?depth=1&feed=json");
         HttpsURLConnection urlConn = (HttpsURLConnection) url.openConnection();

         System.out.println("sending request...");
         urlConn.setRequestMethod("GET");
         urlConn.setAllowUserInteraction(false); // no user interaction
         urlConn.setDoOutput(true); // want to send
         urlConn.setRequestProperty( "Content-type", "text/xml" );
         urlConn.setRequestProperty( "accept", "text/xml" );
         urlConn.setRequestProperty( "authorization", "Basic " + 
             encode("administrator:collation"));
         Map headerFields = urlConn.getHeaderFields();
         System.out.println("header fields are: " + headerFields);

         int rspCode = urlConn.getResponseCode();
         if (rspCode == 200) {
             InputStream ist = urlConn.getInputStream();
             InputStreamReader isr = new InputStreamReader(ist);
             BufferedReader br = new BufferedReader(isr);
         
             String nextLine = br.readLine();
             while (nextLine != null) {
                 System.out.println(nextLine);
                 nextLine = br.readLine();
             }
         }