json.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. package captiveportal;
  2. import java.util.Random;
  3. import java.io.BufferedReader;
  4. import java.io.InputStreamReader;
  5. import java.io.OutputStreamWriter;
  6. import java.io.StringWriter;
  7. import java.net.HttpURLConnection;
  8. import java.net.URL;
  9. import org.json.simple.JSONObject;
  10. import org.json.simple.JSONArray;
  11. import org.json.simple.parser.ParseException;
  12. import org.json.simple.parser.JSONParser;
  13. public class json {
  14. private final String teamKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
  15. private final String teamId = "INXXX-X";
  16. private String[] listTickets(String url, String json) throws Exception {
  17. URL http = new URL(url);
  18. HttpURLConnection con = (HttpURLConnection) http.openConnection();
  19. //add reuqest header
  20. con.setRequestMethod("POST");
  21. con.setRequestProperty("User-Agent", "Mozilla/5.0");
  22. con.setRequestProperty("Content-Type", "application/json");
  23. con.setRequestProperty("Accept", "application/json");
  24. con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
  25. // Send post request
  26. con.setDoOutput(true);
  27. OutputStreamWriter data= new OutputStreamWriter(con.getOutputStream());
  28. data.write(json);
  29. data.flush();
  30. BufferedReader in = new BufferedReader(
  31. new InputStreamReader(con.getInputStream()));
  32. String inputLine;
  33. StringBuffer response = new StringBuffer();
  34. while ((inputLine = in.readLine()) != null) {
  35. response.append(inputLine);
  36. }
  37. in.close();
  38. //print result
  39. JSONParser parser=new JSONParser();
  40. String s = response.toString();
  41. try{
  42. Object obj = parser.parse(s);
  43. JSONObject tickets = (JSONObject)obj;
  44. JSONArray array = (JSONArray)tickets.get("tickets");
  45. String[] ticketNumbers = new String[(int) array.size()];
  46. for(int i = 0; i < (int) array.size(); i++)
  47. {
  48. JSONObject ticketNumber = (JSONObject)array.get(i);
  49. ticketNumbers[i] = (String) ticketNumber.get("ticketNumber");
  50. }
  51. return ticketNumbers;
  52. }catch(ParseException pe){
  53. System.out.println("position: " + pe.getPosition());
  54. System.out.println(pe);
  55. }
  56. String[] returnArray = {"ERROR", "FOUTMELDING"};
  57. return returnArray;
  58. }
  59. private String grandAccessRequest(String json) throws Exception {
  60. URL http = new URL("http://webapi.implementation.computerscience.international:9323/CFIS/Ticket");
  61. HttpURLConnection con = (HttpURLConnection) http.openConnection();
  62. //add reuqest header
  63. con.setRequestMethod("POST");
  64. con.setRequestProperty("User-Agent", "Mozilla/5.0");
  65. con.setRequestProperty("Content-Type", "application/json");
  66. con.setRequestProperty("Accept", "application/json");
  67. con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
  68. // Send post request
  69. con.setDoOutput(true);
  70. OutputStreamWriter data= new OutputStreamWriter(con.getOutputStream());
  71. data.write(json);
  72. data.flush();
  73. BufferedReader in = new BufferedReader(
  74. new InputStreamReader(con.getInputStream()));
  75. String inputLine;
  76. StringBuffer response = new StringBuffer();
  77. while ((inputLine = in.readLine()) != null) {
  78. response.append(inputLine);
  79. }
  80. in.close();
  81. //print result
  82. JSONParser parser=new JSONParser();
  83. String s = response.toString();
  84. Object obj = parser.parse(s);
  85. JSONObject resultCode = (JSONObject)obj;
  86. return (String) resultCode.get("result");
  87. }
  88. @SuppressWarnings("unchecked")
  89. public boolean checkTicket(String ticketNumber) throws Exception
  90. {
  91. JSONObject json=new JSONObject();
  92. Random random = new Random();
  93. int requestId = random.nextInt(9999) + 1000;
  94. json.put("function", "List");
  95. json.put("teamId", teamId);
  96. json.put("teamKey", teamKey);
  97. json.put("requestId", new Integer(requestId));
  98. StringWriter out = new StringWriter();
  99. json.writeJSONString(out);
  100. String jsonText = out.toString();
  101. String[] ticketNumbers = listTickets("http://webapi.implementation.computerscience.international:9323/CFIS/Ticket", jsonText);
  102. for(int i = 0; i < ticketNumbers.length; i++)
  103. {
  104. if(new String(ticketNumbers[i]).equals(ticketNumber))
  105. {
  106. return true;
  107. }
  108. }
  109. return false;
  110. }
  111. @SuppressWarnings("unchecked")
  112. public boolean grandAccess(String ticketNumber) throws Exception
  113. {
  114. JSONObject json=new JSONObject();
  115. Random random = new Random();
  116. int requestId = random.nextInt(9999) + 1000;
  117. json.put("function", "RegisterInternetAccess");
  118. json.put("teamId", teamId);
  119. json.put("teamKey", teamKey);
  120. json.put("requestId", new Integer(requestId));
  121. json.put("ticketNumber", ticketNumber);
  122. StringWriter out = new StringWriter();
  123. json.writeJSONString(out);
  124. String jsonText = out.toString();
  125. String grandResult = grandAccessRequest(jsonText);
  126. if(grandResult.equals("0") || grandResult.equals("8"))
  127. {
  128. return true;
  129. }
  130. else
  131. {
  132. System.out.println("Suddenly le wild error code (" +grandResult+ ") appeared!!");
  133. return false;
  134. }
  135. }
  136. }