Sample Client - Java
Sample Java client used to make Kinetic Task API requests.
Source
The sample code below utilizes the apache commons HttpClient library, which can be found on the Apache Commons HttpComponents site. It requires the commons-codec, commons-logging, and httpcore .jar files (along with the httpclient .jar file) to compile and run.
Download: KineticTaskRestClient.java
import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.http.Header; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils; public class KineticTaskRestClient { public static void main(String[] args) throws IOException { // Initialize the Http Client HttpClient client = new DefaultHttpClient(); // Initialize the request HttpPost request = new HttpPost("http://SERVER:PORT/kineticTask/rest/v1/Trigger/createStart"); // Initialize the headers necessary for the request (in this case, use the // X-Simulate-Success header to simulate a successful API request). request.setHeader("X-Simulate-Success", "KS0000000_SIMULATED_TRIGGER_ID"); // Build the parameters necessary for the request List<NameValuePair> parameterList = new ArrayList<NameValuePair>(); parameterList.add(new BasicNameValuePair("source_name", "Kinetic Request")); parameterList.add(new BasicNameValuePair("source_group", "Kinetic Service Center > iPad Request")); parameterList.add(new BasicNameValuePair("source_id", "AG005056b50003ralGTwMDGfEgBLzN")); parameterList.add(new BasicNameValuePair("tree_name", "Procure iPad")); // Set the request content based on the parameter list request.setEntity(new UrlEncodedFormEntity(parameterList, HTTP.UTF_8)); // Make the request HttpResponse response = client.execute(request); // Parse the response body content String responseContent = EntityUtils.toString(response.getEntity()); // If the response code returned is 200, indicating the API responded with a success if (response.getStatusLine().getStatusCode() == 200) { // Reference to the API Message String message = response.getFirstHeader("X-Message").getValue(); // Reference to the generated ID value String triggerId = response.getFirstHeader("X-ID").getValue(); // Here is where additional logic would go if the calling application needs to do // anything with the generated trigger ID or the API response message System.out.println(triggerId+": "+message); } // If the response code returned is 400, indicating the API responded with a failure else if (response.getStatusLine().getStatusCode() == 400) { // Reference to the API Message String message = response.getFirstHeader("X-Error-Message").getValue(); // Here is where additional logic should go to handle invalid API requests (such as // an invalid token, or an invalid source_name/source_group/tree_name combination). System.err.println(message); } // If the response code returned is 401 (unauthorized), indicating the applied KSL policies // denied the request else if (response.getStatusLine().getStatusCode() == 401) { // Reference to the API Message String message = response.getFirstHeader("X-Error-Message").getValue(); // Here is where additional logic should go to handle unauthorized API requests (IE a // request that is denied by the applied KSL policies). The 'message' will be a comma // separated list of failed policy messages. System.err.println("You are not authorized to access this resource: "+message); } // If the status code returned is anything else, such as when the server is not accessible else { // Here is where logic dealing with an unexpected server exception would go StringBuilder buffer = new StringBuilder(); buffer.append("Response\n"); buffer.append(" ").append(response.getStatusLine().toString()).append("\n"); for (Header header : response.getAllHeaders()) { buffer.append(" ").append(header.toString()).append("\n"); } buffer.append("Content\n"); buffer.append(" ").append(responseContent.replaceAll("\\n", "\n ")); System.err.println(buffer.toString()); } } }