Notification

Urchin WebAnalytics Software is discontinued and is no longer supported. All Urchin documentation applies only to the Urchin product as it was at the time of discontinuation, and does not apply to any Google Analytics products or services.

REST Example 3 (v1): Getting a list of tables for a profile and the supported dimensions/metrics

(Return to main article: Samples for Java (REST) v1)

1. Specify Service URL:

 

private static final String serviceURL =  "http://server[:port]/services/v1/reportservice/tables/";

2. Provide login and account information:

 

private static final String login = "INSERT_LOGIN_HERE";
private static final String password = "INSERT_PASSWORD_HERE";
private static final int profileId = INSERT_PROFILE_ID_HERE;

3. Compose REST URL:

 

      String url = serviceURL + "tables/?" +
                   "login=" + login + "&" +
                   "password=" + password + "&" +
                   "profileId=" + profileId;
      URL service = new URL(url);

4. Create the buffering character-input stream for retrieving account list:

 

BufferedReader in = new BufferedReader(new InputStreamReader(service.openStream()));

5. Define namespace context implementation for data parsing:

 

class UrchinNamespaceContext implements NamespaceContext {
  public String getNamespaceURI(String prefix) {
    if (prefix == null) throw new NullPointerException("Null prefix");
    if (prefix.equals("tns")) return "https://urchin.com/api/urchin/v1/";
    else if ("xml".equals(prefix)) return XMLConstants.XML_NS_URI;
    return XMLConstants.NULL_NS_URI;
  }
  public String getPrefix(String namespaceURI) {
    throw new UnsupportedOperationException();
  }
  public Iterator getPrefixes(String namespaceURI) {
    throw new UnsupportedOperationException();
  }
}

6. Execute request:

 

      XPathFactory fact = XPathFactory.newInstance();
      XPath xp = fact.newXPath();
      InputSource is = new InputSource(in);

      // set namespace context
      xp.setNamespaceContext(new UrchinNamespaceContext());
      // retrieve list of tables
      NodeList tables = (NodeList)xp.evaluate("/tns:getTableListResponse/table", is, XPathConstants.NODESET);

7. Parse and display response:

 

      System.out.println("reportservice/tables/");
      System.out.println("url:" + url);
      for(int i = 0; i < tables.getLength(); i++){
        System.out.println("\ttable id: " + xp.evaluate("tableId/text()", tables.item(i)));
        // retrieve dimensions
        NodeList dimensions = (NodeList)xp.evaluate("dimensions/dimension/text()", tables.item(i), XPathConstants.NODESET);
        for(int j = 0; j < dimensions.getLength(); j++){
          System.out.println("\tdimension: " + dimensions.item(j).getNodeValue());
        }
        // retrieve list of metrics
        NodeList metrics = (NodeList)xp.evaluate("metrics/metric/text()", tables.item(i), XPathConstants.NODESET);
        for(int j = 0; j < metrics.getLength(); j++){
            System.out.println("\tmetric: " + metrics.item(j).getNodeValue());
        }
      }
      in.close();

Complete sample code for this example can be found in the ReportService.java file.

(Return to main article: Samples for Java (REST) v1)

 
true
Search
Clear search
Close search
Main menu
8902217908873329585
true
Search Help Center
true
true
true
false
false