此示例只是提供了核心代码,根据情况参考使用
public static String request(String path, Map<String, Object> queryMap,
String entity, String method, int timeout) {
String queryString = RESTfulUtils.queryMap2String(queryMap);
if (StringUtils.isNotBlank(queryString)) {
if (path.contains("?")) {
path += "&" + queryString;
} else {
path += "?" + queryString;
}
}
InputStream is = null;
InputStreamReader isr = null;
BufferedReader in = null;
HttpURLConnection http = null;
StringBuffer result = new StringBuffer();
try {
URL url = new URL(path);
http = (HttpURLConnection) url.openConnection();
http.setConnectTimeout(timeout);
http.setReadTimeout(timeout);
http.setRequestMethod(method);
http.setRequestProperty("Proxy-Connection", "Keep-Alive");
http.setRequestProperty("Content-Type", "application/json");
http.setDoOutput(true);
http.setDoInput(true);
http.connect();
if (StringUtils.isNotBlank(entity)) {
OutputStreamWriter wr = new OutputStreamWriter(http
.getOutputStream(), "utf-8");
wr.write(entity);
wr.flush();
wr.close();
}
is = http.getInputStream();
isr = new InputStreamReader(is, "utf-8");
in = new BufferedReader(isr);
for (String line; (line = in.readLine()) != null;) {
result.append(line + "\n");
}
} catch (Exception e) {
e.printStackTrace();
result.setLength(0);
result.append(error);
} finally {
RESTfulUtils.close(http, is, isr, in);
}
return result.toString().trim();
}
private static void close(HttpURLConnection http, InputStream is,
InputStreamReader isr, BufferedReader in) {
if (http != null) {
http.disconnect();
}
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (isr != null) {
try {
isr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}