You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
200 lines
6.5 KiB
200 lines
6.5 KiB
3 years ago
|
package com.fr.plugin.oauth.utils;
|
||
|
|
||
|
import com.fr.base.ServerConfig;
|
||
|
import com.fr.json.JSONObject;
|
||
|
import com.fr.third.fasterxml.jackson.core.JsonParseException;
|
||
|
import com.fr.third.fasterxml.jackson.databind.DeserializationFeature;
|
||
|
import com.fr.third.fasterxml.jackson.databind.JsonMappingException;
|
||
|
import com.fr.third.fasterxml.jackson.databind.ObjectMapper;
|
||
|
|
||
|
import javax.net.ssl.HttpsURLConnection;
|
||
|
import javax.servlet.http.HttpServletRequest;
|
||
|
import java.io.BufferedReader;
|
||
|
import java.io.IOException;
|
||
|
import java.io.InputStreamReader;
|
||
|
import java.io.PrintWriter;
|
||
|
import java.net.HttpURLConnection;
|
||
|
import java.net.URL;
|
||
|
import java.net.URLEncoder;
|
||
|
import java.util.Iterator;
|
||
|
import java.util.Map;
|
||
|
import java.util.Set;
|
||
|
|
||
|
public class HttpUtils {
|
||
|
private static ObjectMapper mapper = new ObjectMapper();
|
||
|
|
||
|
static {
|
||
|
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
||
|
}
|
||
|
|
||
|
public static String getRequestPayload(HttpServletRequest req) {
|
||
|
StringBuilder sb = new StringBuilder();
|
||
|
try (BufferedReader reader = req.getReader();) {
|
||
|
char[] buff = new char[1024];
|
||
|
int len;
|
||
|
while ((len = reader.read(buff)) != -1) {
|
||
|
sb.append(buff, 0, len);
|
||
|
}
|
||
|
} catch (IOException e) {
|
||
|
e.printStackTrace();
|
||
|
}
|
||
|
return sb.toString();
|
||
|
}
|
||
|
|
||
|
public static <T> T json2Object(String json, Class<T> typeRef) {
|
||
|
try {
|
||
|
return (T) mapper.readValue(json, typeRef);
|
||
|
} catch (JsonParseException e) {
|
||
|
e.printStackTrace();
|
||
|
} catch (JsonMappingException e) {
|
||
|
e.printStackTrace();
|
||
|
} catch (IOException e) {
|
||
|
}
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
public static String object2Json(Object ok) {
|
||
|
try {
|
||
|
return mapper.writeValueAsString(ok);
|
||
|
} catch (JsonParseException e) {
|
||
|
} catch (JsonMappingException e) {
|
||
|
} catch (IOException e) {
|
||
|
}
|
||
|
return "";
|
||
|
}
|
||
|
|
||
|
public JSONObject createResp(String uid, String reqId) {
|
||
|
JSONObject json = new JSONObject();
|
||
|
json.put("uid", uid);
|
||
|
json.put("bimRequestId", reqId);
|
||
|
json.put("resultCode", "0");
|
||
|
json.put("message", "success");
|
||
|
return json;
|
||
|
}
|
||
|
|
||
|
|
||
|
private static String getParam(Map<String, String> var0, String enc) {
|
||
|
String var1 = "";
|
||
|
Set var2 = var0.keySet();
|
||
|
Iterator var3 = var2.iterator();
|
||
|
|
||
|
while (var3.hasNext()) {
|
||
|
String var4 = (String) var3.next();
|
||
|
String var5 = var0.get(var4) + "";
|
||
|
|
||
|
try {
|
||
|
var1 = var1 + (var1.length() == 0 ? "" : "&") + URLEncoder.encode(var4, enc) + "=" + URLEncoder.encode(var5, enc);
|
||
|
} catch (Exception var7) {
|
||
|
;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return var1;
|
||
|
}
|
||
|
|
||
|
public static boolean isHttps(URL url) {
|
||
|
return url.getProtocol().toLowerCase().equals("https");
|
||
|
}
|
||
|
|
||
|
public static String get(String path, Map<String, String> param) {
|
||
|
String paramStr = getParam(param, ServerConfig.getInstance().getServerCharset());
|
||
|
BufferedReader input = null;
|
||
|
StringBuilder sb = null;
|
||
|
URL url = null;
|
||
|
HttpURLConnection con = null;
|
||
|
try {
|
||
|
url = new URL(path + (paramStr.length() > 0 ? "?" + paramStr.toString() : ""));
|
||
|
if (isHttps(url)) {
|
||
|
HttpsUtils.trustAllHosts();
|
||
|
HttpsURLConnection httpsCon = (HttpsURLConnection) url.openConnection();
|
||
|
httpsCon.setHostnameVerifier(HttpsUtils.DO_NOT_VERIFY);
|
||
|
con = httpsCon;
|
||
|
} else {
|
||
|
con = (HttpURLConnection) url.openConnection();
|
||
|
}
|
||
|
|
||
|
con.setRequestProperty("accept", "*/*");
|
||
|
con.setRequestMethod("GET");
|
||
|
con.setRequestProperty("Accept-Charset", "UTF-8");
|
||
|
|
||
|
input = new BufferedReader(new InputStreamReader(con.getInputStream(), "utf-8"));
|
||
|
sb = new StringBuilder();
|
||
|
String s;
|
||
|
while ((s = input.readLine()) != null) {
|
||
|
sb.append(s).append("\n");
|
||
|
}
|
||
|
} catch (Exception e) {
|
||
|
e.printStackTrace();
|
||
|
} finally {
|
||
|
// close buffered
|
||
|
if (input != null) {
|
||
|
try {
|
||
|
input.close();
|
||
|
} catch (IOException e) {
|
||
|
e.printStackTrace();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// disconnecting releases the timescroller held by a connection so they may be closed or reused
|
||
|
if (con != null) {
|
||
|
con.disconnect();
|
||
|
}
|
||
|
}
|
||
|
return sb == null ? null : sb.toString();
|
||
|
}
|
||
|
|
||
|
|
||
|
public static String post(String path, Map<String, String> param) {
|
||
|
String paramStr = getParam(param, ServerConfig.getInstance().getServerCharset());
|
||
|
PrintWriter writer = null;
|
||
|
BufferedReader reader = null;
|
||
|
HttpURLConnection con = null;
|
||
|
String result = "";
|
||
|
|
||
|
try {
|
||
|
URL url = new URL(path);
|
||
|
if (isHttps(url)) {
|
||
|
HttpsUtils.trustAllHosts();
|
||
|
HttpsURLConnection httpsCon = (HttpsURLConnection) url.openConnection();
|
||
|
httpsCon.setHostnameVerifier(HttpsUtils.DO_NOT_VERIFY);
|
||
|
con = httpsCon;
|
||
|
} else {
|
||
|
con = (HttpURLConnection) url.openConnection();
|
||
|
}
|
||
|
|
||
|
con.setRequestProperty("accept", "*/*");
|
||
|
con.setRequestProperty("connection", "Keep-Alive");
|
||
|
//con.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
|
||
|
// var8.setRequestProperty("Accept-Charset", "UTF-8");
|
||
|
con.setRequestMethod("POST");
|
||
|
con.setDoOutput(true);
|
||
|
con.setDoInput(true);
|
||
|
writer = new PrintWriter(con.getOutputStream());
|
||
|
writer.print(paramStr);
|
||
|
writer.flush();
|
||
|
|
||
|
String line;
|
||
|
for (reader = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8")); (line = reader.readLine()) != null; result = result + line) {
|
||
|
;
|
||
|
}
|
||
|
} catch (Exception e) {
|
||
|
e.printStackTrace();
|
||
|
} finally {
|
||
|
try {
|
||
|
if (writer != null) {
|
||
|
writer.close();
|
||
|
}
|
||
|
|
||
|
if (reader != null) {
|
||
|
reader.close();
|
||
|
}
|
||
|
} catch (Exception var17) {
|
||
|
;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
return result;
|
||
|
}
|
||
|
}
|