01: /*
02: * Copyright 2005-2007 Noelios Consulting.
03: *
04: * The contents of this file are subject to the terms of the Common Development
05: * and Distribution License (the "License"). You may not use this file except in
06: * compliance with the License.
07: *
08: * You can obtain a copy of the license at
09: * http://www.opensource.org/licenses/cddl1.txt See the License for the specific
10: * language governing permissions and limitations under the License.
11: *
12: * When distributing Covered Code, include this CDDL HEADER in each file and
13: * include the License file at http://www.opensource.org/licenses/cddl1.txt If
14: * applicable, add the following below this CDDL HEADER, with the fields
15: * enclosed by brackets "[]" replaced with your own identifying information:
16: * Portions Copyright [yyyy] [name of copyright owner]
17: */
18:
19: package org.restlet.example.book.rest.ch2;
20:
21: import org.restlet.Client;
22: import org.restlet.data.ChallengeResponse;
23: import org.restlet.data.ChallengeScheme;
24: import org.restlet.data.Method;
25: import org.restlet.data.Protocol;
26: import org.restlet.data.Request;
27: import org.restlet.data.Response;
28: import org.restlet.resource.DomRepresentation;
29: import org.w3c.dom.NamedNodeMap;
30: import org.w3c.dom.Node;
31:
32: /**
33: * Getting your list of recent bookmarks on del.icio.us.
34: *
35: * @author Jerome Louvel (contact@noelios.com)
36: */
37: public class Example2_5 {
38: public static void main(String[] args) throws Exception {
39: if (args.length != 2) {
40: System.err
41: .println("You need to pass your del.icio.us user name and password");
42: } else {
43: // Create a authenticated request
44: Request request = new Request(Method.GET,
45: "https://api.del.icio.us/v1/posts/recent");
46: request.setChallengeResponse(new ChallengeResponse(
47: ChallengeScheme.HTTP_BASIC, args[0], args[1]));
48:
49: // Fetch a resource: an XML document with your recent posts
50: Response response = new Client(Protocol.HTTPS)
51: .handle(request);
52: DomRepresentation document = response.getEntityAsDom();
53:
54: // Use XPath to find the interesting parts of the data structure
55: for (Node node : document.getNodes("/posts/post")) {
56: NamedNodeMap attrs = node.getAttributes();
57: String desc = attrs.getNamedItem("description")
58: .getNodeValue();
59: String href = attrs.getNamedItem("href").getNodeValue();
60: System.out.println(desc + ": " + href);
61: }
62: }
63: }
64: }
|