Showing
5 changed files
with
123 additions
and
1 deletions
... | @@ -11,6 +11,7 @@ | ... | @@ -11,6 +11,7 @@ |
11 | android:label="@string/app_name" | 11 | android:label="@string/app_name" |
12 | android:roundIcon="@mipmap/ic_launcher_round" | 12 | android:roundIcon="@mipmap/ic_launcher_round" |
13 | android:supportsRtl="true" | 13 | android:supportsRtl="true" |
14 | + android:networkSecurityConfig="@xml/network_security_config" | ||
14 | android:theme="@style/Theme.AppCompat.NoActionBar"> | 15 | android:theme="@style/Theme.AppCompat.NoActionBar"> |
15 | <activity android:name=".ui.SplashActivity" | 16 | <activity android:name=".ui.SplashActivity" |
16 | android:screenOrientation="fullSensor" | 17 | android:screenOrientation="fullSensor" | ... | ... |
1 | +package com.sunnni.smartdoorlock.api; | ||
2 | + | ||
3 | +import android.os.Handler; | ||
4 | +import android.util.Log; | ||
5 | + | ||
6 | +import com.google.gson.JsonArray; | ||
7 | +import com.google.gson.JsonElement; | ||
8 | +import com.google.gson.JsonObject; | ||
9 | +import com.google.gson.JsonParser; | ||
10 | + | ||
11 | +import org.json.JSONObject; | ||
12 | + | ||
13 | +import java.io.BufferedInputStream; | ||
14 | +import java.io.BufferedReader; | ||
15 | +import java.io.InputStream; | ||
16 | +import java.io.InputStreamReader; | ||
17 | +import java.io.OutputStream; | ||
18 | +import java.net.HttpURLConnection; | ||
19 | +import java.net.URL; | ||
20 | + | ||
21 | +public class Api { | ||
22 | + public interface Callback { | ||
23 | + void callbackMethod(Object obj); | ||
24 | + } | ||
25 | + | ||
26 | + static private final String DOMAIN = "gateway.bu.to:8000"; | ||
27 | + static private String accessToken = null; | ||
28 | + | ||
29 | + static private void callApi(final String method, final String endpoint, final JsonObject params, final Callback callback) { | ||
30 | + final Handler handler = new Handler(); | ||
31 | + new Thread() { | ||
32 | + public void run() { | ||
33 | + ApiResult apiResult; | ||
34 | + try { | ||
35 | + Log.d("test", "callApi"); | ||
36 | + URL url = new URL("http://" + Api.DOMAIN + endpoint); | ||
37 | + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); | ||
38 | + conn.setRequestMethod(method); | ||
39 | + | ||
40 | + if(accessToken != null) { | ||
41 | + conn.setRequestProperty("access_token", accessToken); | ||
42 | + } | ||
43 | + | ||
44 | + if("POST".equals(method) || "PUT".equals(method)) { | ||
45 | + if(params == null) { | ||
46 | + throw new Exception("params is null"); | ||
47 | + } | ||
48 | + OutputStream os = conn.getOutputStream(); | ||
49 | + os.write(params.toString().getBytes()); | ||
50 | + os.flush(); | ||
51 | + os.close(); | ||
52 | + } | ||
53 | + | ||
54 | + StringBuilder builder = new StringBuilder(); | ||
55 | + InputStream is = conn.getInputStream(); | ||
56 | + BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); | ||
57 | + String line; | ||
58 | + while((line = reader.readLine()) != null) { | ||
59 | + builder.append(line); | ||
60 | + } | ||
61 | + | ||
62 | + Log.d("http result", builder.toString()); | ||
63 | + | ||
64 | + JsonElement jsonElement = JsonParser.parseString(builder.toString()); | ||
65 | + | ||
66 | + apiResult = new ApiResult(true, jsonElement); | ||
67 | + } catch (Exception e) { | ||
68 | + e.printStackTrace(); | ||
69 | + apiResult = new ApiResult(false, e.getMessage()); | ||
70 | + } | ||
71 | + | ||
72 | + final ApiResult finalApiResult = apiResult; | ||
73 | + handler.post(new Runnable() { | ||
74 | + @Override | ||
75 | + public void run() { | ||
76 | + callback.callbackMethod(finalApiResult); | ||
77 | + } | ||
78 | + }); | ||
79 | + } | ||
80 | + }.start(); | ||
81 | + } | ||
82 | +} |
1 | +package com.sunnni.smartdoorlock.api; | ||
2 | + | ||
3 | +public class ApiResult { | ||
4 | + public String getError() { | ||
5 | + return this.error; | ||
6 | + } | ||
7 | + | ||
8 | + public boolean isError() { | ||
9 | + return this.error != null; | ||
10 | + } | ||
11 | + | ||
12 | + public Object getData() { | ||
13 | + return this.data; | ||
14 | + } | ||
15 | + | ||
16 | + public void setError(String error) { | ||
17 | + this.error = error; | ||
18 | + } | ||
19 | + | ||
20 | + public void setData(Object data) { | ||
21 | + this.data = data; | ||
22 | + } | ||
23 | + | ||
24 | + public ApiResult(boolean result, Object obj) { | ||
25 | + if(result) { | ||
26 | + this.data = obj; | ||
27 | + } else { | ||
28 | + this.error = (String) obj; | ||
29 | + } | ||
30 | + } | ||
31 | + | ||
32 | + private String error; | ||
33 | + private Object data; | ||
34 | +} |
... | @@ -8,7 +8,7 @@ buildscript { | ... | @@ -8,7 +8,7 @@ buildscript { |
8 | 8 | ||
9 | } | 9 | } |
10 | dependencies { | 10 | dependencies { |
11 | - classpath 'com.android.tools.build:gradle:3.6.1' | 11 | + classpath 'com.android.tools.build:gradle:3.6.3' |
12 | 12 | ||
13 | 13 | ||
14 | // NOTE: Do not place your application dependencies here; they belong | 14 | // NOTE: Do not place your application dependencies here; they belong | ... | ... |
-
Please register or login to post a comment