120 lines
3.6 KiB
Java
Raw Normal View History

2016-09-01 16:58:26 -05:00
package com.topjohnwu.magisk.utils;
2016-09-08 14:47:04 -05:00
import android.util.Log;
2016-09-01 16:58:26 -05:00
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import javax.net.ssl.HttpsURLConnection;
public class WebRequest {
static String response = null;
public final static int GET = 1;
public final static int POST = 2;
//Constructor with no parameter
public WebRequest() {
}
/**
* Making web service call
*
* @url - url to make request
* @requestmethod - http request method
*/
2016-09-19 10:08:46 +08:00
public static String makeWebServiceCall(String url, int requestmethod) {
2016-09-08 14:47:04 -05:00
Log.d("Magisk","WebRequest: Service call received for URL " + url);
2016-09-19 10:08:46 +08:00
return makeWebServiceCall(url, requestmethod, null, false);
2016-09-06 16:54:08 -05:00
2016-09-08 14:47:04 -05:00
2016-09-06 16:54:08 -05:00
}
2016-09-19 10:08:46 +08:00
public static String makeWebServiceCall(String url, int requestmethod, boolean addNewLines) {
2016-09-08 14:47:04 -05:00
Log.d("Magisk","WebRequest: Service call(bool) received for URL " + url);
2016-09-19 10:08:46 +08:00
return makeWebServiceCall(url, requestmethod, null, addNewLines);
2016-09-06 16:54:08 -05:00
2016-09-01 16:58:26 -05:00
}
/**
* Making service call
*
* @url - url to make request
* @requestmethod - http request method
* @params - http request params
*/
2016-09-19 10:08:46 +08:00
public static String makeWebServiceCall(String urladdress, int requestmethod,
HashMap<String, String> params, boolean addNewLines) {
2016-09-01 16:58:26 -05:00
URL url;
String response = "";
try {
url = new URL(urladdress);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(15000);
conn.setConnectTimeout(15000);
conn.setDoInput(true);
if (requestmethod == POST) {
conn.setRequestMethod("POST");
} else if (requestmethod == GET) {
conn.setRequestMethod("GET");
}
if (params != null) {
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
StringBuilder result = new StringBuilder();
boolean first = true;
for (Map.Entry<String, String> entry : params.entrySet()) {
if (first)
first = false;
else
result.append("&");
result.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
result.append("=");
result.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
}
writer.write(result.toString());
writer.flush();
writer.close();
os.close();
}
int responseCode = conn.getResponseCode();
if (responseCode == HttpsURLConnection.HTTP_OK) {
String line;
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ((line = br.readLine()) != null) {
2016-09-19 10:08:46 +08:00
if (addNewLines) {
2016-09-08 14:47:04 -05:00
response += line + "\n";
} else {
response += line;
}
2016-09-01 16:58:26 -05:00
}
} else {
response = "";
}
} catch (Exception e) {
e.printStackTrace();
}
return response;
}
}