Advertisement
Guest User

Untitled

a guest
Mar 21st, 2017
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.87 KB | None | 0 0
  1. package vpn.com.hamzatest.routing;
  2.  
  3. public class Config {
  4. public static final int CODE_SUCCEED = 0;
  5.  
  6. public static final String SERVER_HOST = "http://www.vpngate.net:8080";
  7. // public static final String SERVER_PORT = "8080";
  8. }
  9.  
  10. public class ApiClient {
  11.  
  12. private static OkHttpClient client = new OkHttpClient();
  13. private static final MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded; charset=utf-8");
  14.  
  15. // private static final String PROTOCAL = "http";
  16. private static final String API_PREFIX = "";
  17. private static final String HOST = Config.SERVER_HOST + API_PREFIX;
  18.  
  19. private static final String registerUrl = "";
  20. private static final String getUserDataUrl = "";
  21. private static final String getConnectionUrl = "/connection";
  22. private static final String delConnectionUrl = "/connection";
  23. private static final String signinUrl = "/signIn";
  24. private static final String inviteUrl = "/invite";
  25. private static final String serverListUrl = "/serverlist";
  26.  
  27. public static VultureContract.User register(String username, String password) throws IOException {
  28. RequestBody rb = RequestBody.create(mediaType, "username=" + username + "&" + "password=" + password);
  29. Request req = new Request.Builder()
  30. .url(HOST + registerUrl)
  31. .post(rb)
  32. .build();
  33. Response res = client.newCall(req).execute();
  34. Gson gson = new Gson();
  35. String re = res.body().string();
  36. ApiResponse rr = gson.fromJson(re, RegisterResponse.class);
  37. // close body avoid leak
  38. res.body().close();
  39. if (rr != null && rr.success()) {
  40. return new VultureUser(username, password);
  41. } else {
  42. return null;
  43. }
  44. }
  45.  
  46. public static VultureUserData getUserData(String username, String password) throws IOException {
  47. Request req = new Request.Builder()
  48. .url(HOST + getUserDataUrl + "/" + username + "?password=" + password)
  49. .get()
  50. .build();
  51. Response res = client.newCall(req).execute();
  52. Gson gson = new Gson();
  53. String re = res.body().string();
  54. ApiResponse udr = gson.fromJson(re, UserDataResponse.class);
  55. // close body avoid leak
  56. res.body().close();
  57. if (udr != null && udr.success()) {
  58. return (VultureUserData) udr.getMessage();
  59. } else {
  60. return null;
  61. }
  62. }
  63.  
  64. public static VultureConnection getConnection(String username, String password) throws IOException {
  65. Request req = new Request.Builder()
  66. .url(HOST + "/" + username + getConnectionUrl + "?password=" + password)
  67. .get()
  68. .build();
  69. Response res = client.newCall(req).execute();
  70. Gson gson = new Gson();
  71. String re = res.body().string();
  72. ApiResponse gcr = gson.fromJson(re, GetConnectionResponse.class);
  73. // close body avoid leak
  74. res.body().close();
  75. if (gcr != null && gcr.success()) {
  76. return (VultureConnection) gcr.getMessage();
  77. } else {
  78. return null;
  79. }
  80. }
  81.  
  82. public static VultureConnection getSpecifyConnection(String username, String password, String serverIp) throws IOException {
  83. Request req = new Request.Builder()
  84. .url(HOST + "/" + username + getConnectionUrl + "?password=" + password + "&server=" + serverIp)
  85. .get()
  86. .build();
  87. Response res = client.newCall(req).execute();
  88. Gson gson = new Gson();
  89. String re = res.body().string();
  90. ApiResponse gcr = gson.fromJson(re, GetConnectionResponse.class);
  91. // close body avoid leak
  92. res.body().close();
  93. if (gcr != null && gcr.success()) {
  94. return (VultureConnection) gcr.getMessage();
  95. } else {
  96. return null;
  97. }
  98. }
  99.  
  100. public static boolean deleteConnection(String username, String password) throws IOException {
  101. Request req = new Request.Builder()
  102. .url(HOST + "/" + username + delConnectionUrl + "?password=" + password)
  103. .delete()
  104. .build();
  105. Response res = client.newCall(req).execute();
  106. Gson gson = new Gson();
  107. String re = res.body().string();
  108. ApiResponse dcr = gson.fromJson(re, DelConnectionResponse.class);
  109. // close body avoid leak
  110. res.body().close();
  111. return dcr != null && dcr.success();
  112. }
  113.  
  114. public static boolean signIn(String username) throws IOException {
  115. Request req = new Request.Builder()
  116. .url(HOST + "/" + username + signinUrl)
  117. .get()
  118. .build();
  119. Response res = client.newCall(req).execute();
  120. Gson gson = new Gson();
  121. String re = res.body().string();
  122. ApiResponse sr = gson.fromJson(re, SignResponse.class);
  123. // close body avoid leak
  124. res.body().close();
  125. return sr != null && sr.success();
  126. }
  127.  
  128. public static boolean invite(String username, String password, String code) throws IOException {
  129. RequestBody rb = RequestBody.create(mediaType, "username=" + username + "&" + "password=" + password + "&" + "code=" + code);
  130. Request req = new Request.Builder()
  131. .url(HOST + "/" + username + inviteUrl)
  132. .post(rb)
  133. .build();
  134. Response res = client.newCall(req).execute();
  135. Gson gson = new Gson();
  136. String re = res.body().string();
  137. ApiResponse ir = gson.fromJson(re, InviteResponse.class);
  138. // close body avoid leak
  139. res.body().close();
  140. return ir != null && ir.success();
  141. }
  142.  
  143. public static VultureServer[] getServerList(String username) throws IOException {
  144. Request req = new Request.Builder()
  145. .url(HOST + "/" + username + serverListUrl)
  146. .get()
  147. .build();
  148. Response res = client.newCall(req).execute();
  149. Gson gson = new Gson();
  150. String re = res.body().string();
  151. ApiResponse ir = gson.fromJson(re, GetServerListResponse.class);
  152. // close body avoid leak
  153. res.body().close();
  154. if (ir != null && ir.success()) {
  155. return (VultureServer[]) ir.getMessage();
  156. }else{
  157. return null;
  158. }
  159. }
  160.  
  161. // return -1 when timeout
  162. public static long pingServer(String serverIp){
  163. long msBefore = System.currentTimeMillis();
  164.  
  165. Request req = new Request.Builder()
  166. .url("http://" + serverIp)
  167. .get()
  168. .build();
  169. try {
  170. Response res = client.newCall(req).execute();
  171. // close body avoid leak
  172. res.body().close();
  173. } catch (IOException e) {
  174. e.printStackTrace();
  175. return -1;
  176. }
  177. long msAfter = System.currentTimeMillis();
  178. return msAfter - msBefore;
  179. }
  180.  
  181. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement