Reverting local HTTP gateway back from HTTPS to HTTP; there was a change regarding...
[iot2.git] / benchmarks / other / PhoneInterface / SpeakerLocator / app / src / main / java / com / example / xub3 / speakerlocator / Helper.java
1 package com.example.xub3.speakerlocator;
2
3 import android.util.Log;
4
5 import org.apache.http.HttpResponse;
6 import org.apache.http.HttpVersion;
7 import org.apache.http.client.HttpClient;
8 import org.apache.http.client.methods.HttpPost;
9 import org.apache.http.conn.ClientConnectionManager;
10 import org.apache.http.conn.scheme.PlainSocketFactory;
11 import org.apache.http.conn.scheme.Scheme;
12 import org.apache.http.conn.scheme.SchemeRegistry;
13 import org.apache.http.conn.ssl.SSLSocketFactory;
14 import org.apache.http.entity.StringEntity;
15 import org.apache.http.impl.client.DefaultHttpClient;
16 import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
17 import org.apache.http.params.BasicHttpParams;
18 import org.apache.http.params.CoreConnectionPNames;
19 import org.apache.http.params.CoreProtocolPNames;
20 import org.apache.http.params.HttpParams;
21 import org.apache.http.protocol.HTTP;
22 import org.json.JSONArray;
23 import org.json.JSONObject;
24
25 import java.io.BufferedInputStream;
26 import java.io.BufferedReader;
27 import java.io.IOException;
28 import java.io.InputStreamReader;
29 import java.io.InputStream;
30 import java.security.KeyStore;
31 import java.security.cert.Certificate;
32 import java.security.cert.CertificateFactory;
33 import java.security.cert.X509Certificate;
34
35
36 /**
37  * Created by xub3 on 4/14/16.
38  */
39 public class Helper {
40     private static final int Driver_port = 8000;
41     private static final String Tag = "CallReceiver";
42     HttpClient httpclient;
43     //Set up
44     void setConnection() {
45         httpclient = createClient();
46     }
47     HttpClient createClient() {
48         HttpParams params = new BasicHttpParams();
49         params.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
50         params.setParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET, HTTP.DEFAULT_CONTENT_CHARSET);
51         params.setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, true);
52         params.setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 30 * 1000);
53         params.setParameter(CoreConnectionPNames.SO_TIMEOUT, 30 * 1000);
54
55         SchemeRegistry schReg = new SchemeRegistry();
56         schReg.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 8000));
57         ClientConnectionManager conMgr = new ThreadSafeClientConnManager(params, schReg);
58
59         return new DefaultHttpClient(conMgr, params);
60     }
61
62     //Make http request
63     public void  makeRequest(String destIP, Object contentStr, String methodName) {
64         String url = "http://"+ destIP+":" + Driver_port + "/"+methodName;
65
66
67         InputStream inputStream = null;
68         String result = "";
69         StringBuilder sb = new StringBuilder();
70         try {
71             HttpPost httpPost = new HttpPost(url);
72             JSONArray params = new JSONArray();
73
74             JSONObject content = new JSONObject();
75             JSONObject parent = new JSONObject();
76             content.put("type", contentStr.getClass().getName());
77             content.put("value", contentStr);
78             params.put(0,content);
79             parent.put("params", params);
80             StringEntity se = new StringEntity(parent.toString());
81             httpPost.setEntity(se);
82             httpPost.setHeader("Accept", "application/json");
83             httpPost.setHeader("Content-type", "application/json");
84             HttpResponse httpResponse = httpclient.execute(httpPost);
85             // 9. receive response as inputStream
86             inputStream = httpResponse.getEntity().getContent();
87
88             // 10. convert inputstream to string
89             if(inputStream != null)
90                 result = convertInputStreamToString(inputStream);
91             else
92                 result = "Did not work!";
93             Log.v(Tag, result);
94         } catch (Exception ex) {
95             if (ex.getMessage() != null) {
96                 Log.v(Tag, ex.getMessage());
97             }
98             ex.printStackTrace();
99         }
100     }
101
102     private static String convertInputStreamToString(InputStream inputStream) throws IOException{
103         BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(inputStream));
104         String line = "";
105         String result = "";
106         while((line = bufferedReader.readLine()) != null)
107             result += line;
108
109         inputStream.close();
110         return result;
111
112     }
113 }
114