Difference between revisions of "REST API:Login"
From LongJump Support Wiki
imported>Aeric |
imported>Aeric m (Text replace - 'http://{domain}' to 'https://{domain}') |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
:This code from the [[REST API:BaseClient|BaseClient]] sample program uses the Apache wink RestClient to make a REST login request and get a sessionId. It | :This code from the [[REST API:BaseClient|BaseClient]] sample program uses the Apache wink RestClient to make a REST login request and get a sessionId. It uses the Apache Wink client to post the login request, and calls a utility method defined in the [{{DOCHOST}}/samples/demo/rest/BaseUtil.java BaseUtil]] class to extract the sessionId from the response. | ||
:<syntaxhighlight lang="java" enclose="div" style="overflow: auto"> | :<syntaxhighlight lang="java" enclose="div" style="overflow: auto"> | ||
Line 26: | Line 26: | ||
RestClient client; | RestClient client; | ||
String baseUrl = " | String baseUrl = "https://{domain}"; | ||
String username = "yourName"; | String username = "yourName"; | ||
String password = "yourPassword"; | String password = "yourPassword"; | ||
Line 70: | Line 70: | ||
public static String getValue(String xpath_expr, String xml) | public static String getValue(String xpath_expr, String xml) | ||
{ | { | ||
return | return BaseUtil.xpath_result(xpath_expr, xml); | ||
} | } | ||
Latest revision as of 19:19, 30 March 2012
- This code from the BaseClient sample program uses the Apache wink RestClient to make a REST login request and get a sessionId. It uses the Apache Wink client to post the login request, and calls a utility method defined in the BaseUtil] class to extract the sessionId from the response.
package demo.rest; //HTTP Classes import org.apache.wink.client.RestClient; import org.apache.wink.client.Resource; import org.apache.wink.client.ClientResponse; import org.apache.commons.httpclient.HttpStatus; // Utility Classes import java.io.InputStream; /* * A base client that handles login and logout and provides utility * methods for programs that use REST APIs. * * Note: * This class uses the Apache wink RestClient, which makes it * pretty easy to make requests and handle responses. */ public class BaseClient { String sessionId; RestClient client; String baseUrl = "https://{domain}"; String username = "yourName"; String password = "yourPassword"; public String login() { String url = baseUrl + "/networking/rest/login"; String xml = "<platform>" + "<login>" + "<userName>"+username+"</userName>" + "<password>"+password+"</password>" + "</login>" + "</platform>"; try { System.out.println("Logging in"); this.client = new RestClient(); Resource resource = client.resource(url); resource.contentType("application/xml"); resource.accept("application/xml"); ClientResponse response = resource.post(xml); String responseXml = response.getEntity(String.class); this.sessionId = getValue("/platform/login/sessionId", responseXml); return this.sessionId; } catch (Exception e) { e.printStackTrace(); } return null; } /* * Get a value from XML returned in a response. * * @param xpath_expr An XPATH expression. * For example: "/platform/login/sessionId" * * @param xml The XML string to be parsed. Generally obtained using * ClientResponse.getEntity(String.class) --Apache wink RestClient * httpMethod.getResponseBodyAsString() --Apache HttpClient */ public static String getValue(String xpath_expr, String xml) { return BaseUtil.xpath_result(xpath_expr, xml); } // ...Other utility methods used by subclasses... public static void main(String args[]) { BaseClient client = new BaseClient(); String sessionId = client.login(); System.out.println("SessionId is: " + sessionId); client.logout(); }