import java.net.*; import java.io.*; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.Calendar; import java.util.TimeZone; import java.text.DateFormat; import java.text.SimpleDateFormat; public class program { public static class PRequest { public String Account="user@plaspy.com"; public String ApiKey="MyAPIKey"; public String IdDevice="IdDevice"; public String StartUTC; public String EndUTC; public boolean LastLocation= true; // Only for query GetLocation public boolean LastAlert= true; // Only for query GetAlert public PRequest() { DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); Calendar date= Calendar.getInstance(TimeZone.getTimeZone("UTC")); EndUTC= df.format(date.getTime()); date.add(Calendar.HOUR, -12); StartUTC= df.format(date.getTime()); } public String getParamsRequest() { String request =""; try { Field[] fields = this.getClass().getDeclaredFields(); for (Field field : fields) { if(request.length()>0) request+="&"; request+=field.getName() + "=" + URLEncoder.encode(field.get(this).toString(), "UTF-8"); } } catch (Exception ex){} return request; } public String getXMLRequest() { String request =""; try { Field[] fields = this.getClass().getDeclaredFields(); for (Field field : fields) { request+= "<" + field.getName() + ">" + field.get(this).toString() + "" ; } } catch (Exception ex){} return request +""; } public String getJSONRequest() { String request =""; try { Field[] fields = this.getClass().getDeclaredFields(); for (Field field : fields) { if(request.length()>0) request+=","; request+= "\"" + field.getName() + "\":\"" + field.get(this).toString() + "\""; ; } } catch (Exception ex){} return "{" + request +"}"; } } public static boolean makeRequest(String operation, String message, String contentType, String request, boolean post) { try { System.out.println(message); System.out.println("Request: " + request); URL url = new URL(APIURL + operation + (post ? "" : "?" + request)); URLConnection conn = url.openConnection(); if (post) { conn.setRequestProperty("Content-Type", contentType + "; charset=utf-8"); conn.setDoOutput(true); OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); wr.write(request); wr.flush(); wr.close(); } // Get the response BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = rd.readLine()) != null) { // Print the response output... System.out.println("Response: " + line); } System.out.println(); rd.close(); } catch (Exception ex) { ex.printStackTrace(); return false; } return true; } public static final String APIURL = "https://api.plaspy.com/api/"; static public void main(String[] args) { PRequest request = new PRequest(); System.out.println("GetLocation"); makeRequest("GetLocation", "Testing POST", "application/x-www-form-urlencoded", request.getParamsRequest(), true); makeRequest("GetLocation", "Testing POST XML", "text/xml", request.getXMLRequest(), true); makeRequest("GetLocation", "Testing POST JSON", "application/json", request.getJSONRequest(), true); makeRequest("GetLocation", "Testing Get JSON", "application/json", request.getParamsRequest(), false); System.out.println("GetAlert"); makeRequest("GetAlert", "Testing POST", "application/x-www-form-urlencoded", request.getParamsRequest(), true); makeRequest("GetAlert", "Testing POST XML", "text/xml", request.getXMLRequest(), true); makeRequest("GetAlert", "Testing POST JSON", "application/json", request.getJSONRequest(), true); makeRequest("GetAlert", "Testing Get JSON", "application/json", request.getParamsRequest(), false); } }