diff --git a/src/restfulchecker/RestAccount.java b/src/restfulchecker/RestAccount.java index 300dd58..6954795 100644 --- a/src/restfulchecker/RestAccount.java +++ b/src/restfulchecker/RestAccount.java @@ -3,10 +3,16 @@ import org.ntlab.radishforandroidstudio.framework.network.HttpAsyncConnection; public class RestAccount extends HttpAsyncConnection { + private String url; public RestAccount(String url) { super(url); + this.url = url; // TODO Auto-generated constructor stub } + public String getUrl() { + return url; + } + } diff --git a/src/restfulchecker/RestApi.java b/src/restfulchecker/RestApi.java index b2c69f3..602389f 100644 --- a/src/restfulchecker/RestApi.java +++ b/src/restfulchecker/RestApi.java @@ -46,8 +46,14 @@ } public void doRestTest() { - if (type == null) + if (type == null) { + System.out.println("not Selected Method"); return; + } + RestAccount first = new RestAccount(accounts.get(0).getUrl()); + first.doGet(); + first.doAnything(); + beforeResults.add(first.doReceive()); for (RestAccount account : accounts) { switch (type) { case GET: @@ -66,13 +72,11 @@ addParam(account); account.doAnything(); responses.add(account.getResponseCode()); - results.add(account.doReceive()); + String receive = account.doReceive(); + results.add(receive); + beforeResults.add(receive); } - if (listAllEquals()) { - judgeResult = "GET"; - } else { - judgeMethod(); - } + judgeMethod(); } private void addParam(RestAccount account) { @@ -90,23 +94,32 @@ } } - private boolean listAllEquals() { - String first = results.get(0); - int firstres = responses.get(0); - for (String s : results) { - if (firstres != 200 || !s.equals(first)) - return false; - } - return true; - } - private void judgeMethod() { ArrayList identically = new ArrayList<>(); Iterator current = beforeResults.iterator(); - String beforeResult = current.next(); + Boolean first = null; + boolean judge = false; for (String result : results) { - if (result.equals(beforeResult)) - identically.add(true); + String beforeResult = current.next(); + identically.add(result.equals(beforeResult)); + } + for (boolean idente : identically) { + if (first == null) { + first = idente; + } else { + if (!idente) { + judge = false; + } else { + judge = true; + } + } + } + if (first && judge) { + judgeResult = "GET"; + } else if (!first && judge) { + judgeResult = "PUT or DELETE"; + } else { + judgeResult = "POST"; } }