· 6 years ago · May 01, 2020, 10:10 PM
1package space_cheetah;
2
3import java.io.BufferedReader;
4import java.io.IOException;
5import java.io.InputStreamReader;
6import java.io.OutputStreamWriter;
7import java.net.URL;
8import java.util.Base64;
9
10import javax.net.ssl.HttpsURLConnection;
11
12public class LifxMain
13{
14 public static void main(String[] args)
15 {
16 String toSend = "{";
17 for(String arg : args)
18 {
19 toSend += "\"" + arg.substring(0,arg.indexOf('=')) + "\":";
20 String data = arg.substring(arg.indexOf('=') + 1);
21 if(data.equals("true")) toSend += "true,";
22 else if(data.equals("false")) toSend += "false,";
23 else
24 {
25 try
26 {
27 double d = Double.valueOf(data);
28 toSend = toSend + d + ",";
29 }
30 catch(Exception e)
31 {
32 toSend += "\"" + data + "\",";
33 }
34 }
35 }
36 toSend = toSend.substring(0, toSend.length() - 1);
37 toSend += "}";
38 if(args.length != 0)
39 System.out.println("Converted to json: " + toSend);
40 try
41 {
42 String token = "(REDACTED API KEY)";
43 String basicAuthPayload = "Basic " + Base64.getEncoder().encodeToString(token.getBytes());
44 String url = args.length == 0 ? "https://api.lifx.com/v1/lights/all" : "https://api.lifx.com/v1/lights/label:Sam/state";
45 URL urlObj = new URL(url);
46 HttpsURLConnection connection = (HttpsURLConnection) urlObj.openConnection();
47 connection.setDoOutput(true);
48 connection.setDoInput(true);
49 connection.setRequestMethod(args.length == 0 ? "GET" : "PUT");
50 connection.addRequestProperty("Authorization", basicAuthPayload);
51 if(args.length != 0)
52 {
53 OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
54 out.write(toSend);
55 out.close();
56 }
57 connection.getInputStream();
58 StringBuffer requestParams = new StringBuffer();
59 BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
60 String lineRead;
61 while((lineRead = reader.readLine()) != null)
62 {
63 System.out.println(lineRead);
64 }
65 }
66 catch (IOException e)
67 {
68 e.printStackTrace();
69 }
70 }
71}