package org.springblade.modules.equipage.controller;
|
import java.io.BufferedOutputStream;
|
import java.io.File;
|
import java.io.FileOutputStream;
|
import java.io.IOException;
|
import java.io.OutputStream;
|
import java.io.PrintWriter;
|
import java.net.URI;
|
import java.nio.charset.Charset;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.Iterator;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Map.Entry;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.LogFactory;
|
import org.apache.http.HttpEntity;
|
import org.apache.http.NameValuePair;
|
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
import org.apache.http.client.methods.HttpGet;
|
import org.apache.http.client.methods.HttpPost;
|
import org.apache.http.client.methods.HttpRequestBase;
|
import org.apache.http.entity.ContentType;
|
import org.apache.http.entity.StringEntity;
|
import org.apache.http.entity.mime.HttpMultipartMode;
|
import org.apache.http.entity.mime.MultipartEntityBuilder;
|
import org.apache.http.entity.mime.content.FileBody;
|
import org.apache.http.entity.mime.content.StringBody;
|
import org.apache.http.impl.client.CloseableHttpClient;
|
import org.apache.http.impl.client.HttpClients;
|
import org.apache.http.message.BasicHeader;
|
import org.apache.http.message.BasicNameValuePair;
|
import org.apache.http.util.EntityUtils;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONObject;
|
public class HttpReqUtil {
|
protected final static Log LOG = LogFactory.getLog(HttpReqUtil.class);
|
private static HttpReqUtil instance;
|
protected Charset charset;
|
|
private HttpReqUtil(){}
|
|
public static HttpReqUtil getInstance() {
|
return getInstance(Charset.defaultCharset());
|
}
|
|
public static HttpReqUtil getInstance(Charset charset){
|
if(instance == null){
|
instance = new HttpReqUtil();
|
}
|
instance.setCharset(charset);
|
return instance;
|
}
|
|
public void setCharset(Charset charset) {
|
this.charset = charset;
|
}
|
|
/**
|
* post请求
|
*/
|
public String doPost(String url) throws Exception {
|
return doPost(url, null, null);
|
}
|
|
public String doPost(String url, Map<String, Object> params) throws Exception {
|
return doPost(url, params, null);
|
}
|
|
public String doPost(String url, Map<String, Object> params, Map<String, String> header) throws Exception {
|
String body = null;
|
try {
|
// Post请求
|
LOG.debug(" protocol: POST");
|
LOG.debug(" url: " + url);
|
HttpPost httpPost = new HttpPost(url.trim());
|
// 设置参数
|
LOG.debug(" params: " + JSON.toJSONString(params));
|
httpPost.setEntity(new UrlEncodedFormEntity(map2NameValuePairList(params), charset));
|
// 设置Header
|
if (header != null && !header.isEmpty()) {
|
LOG.debug(" header: " + JSON.toJSONString(header));
|
for (Iterator<Entry<String, String>> it = header.entrySet().iterator(); it.hasNext();) {
|
Entry<String, String> entry = (Entry<String, String>) it.next();
|
httpPost.setHeader(new BasicHeader(entry.getKey(), entry.getValue()));
|
}
|
}
|
// 发送请求,获取返回数据
|
body = execute(httpPost);
|
} catch (Exception e) {
|
throw e;
|
}
|
LOG.debug(" result: " + body);
|
return body;
|
}
|
|
/**
|
* postJson请求
|
*/
|
public String doPostJson(String url, Map<String, Object> params) throws Exception {
|
return doPostJson(url, params, null);
|
}
|
|
public String doPostJson(String url, Map<String, Object> params, Map<String, String> header) throws Exception {
|
String json = null;
|
if (params != null && !params.isEmpty()) {
|
for (Iterator<Entry<String, Object>> it = params.entrySet().iterator(); it.hasNext();) {
|
Entry<String, Object> entry = (Entry<String, Object>) it.next();
|
Object object = entry.getValue();
|
if (object == null) {
|
it.remove();
|
}
|
}
|
json = JSON.toJSONString(params);
|
}
|
return postJson(url, json, header);
|
}
|
|
public String doPostJson(String url, String json) throws Exception {
|
return doPostJson(url, json, null);
|
}
|
|
public String doPostJson(String url, String json, Map<String, String> header) throws Exception {
|
return postJson(url, json, header);
|
}
|
|
private String postJson(String url, String json, Map<String, String> header) throws Exception {
|
String body = null;
|
try {
|
// Post请求
|
LOG.debug(" protocol: POST");
|
LOG.debug(" url: " + url);
|
HttpPost httpPost = new HttpPost(url.trim());
|
// 设置参数
|
LOG.debug(" params: " + json);
|
httpPost.setEntity(new StringEntity(json, ContentType.DEFAULT_TEXT.withCharset(charset)));
|
httpPost.setHeader(new BasicHeader("Content-Type", "application/json"));
|
LOG.debug(" type: JSON");
|
// 设置Header
|
if (header != null && !header.isEmpty()) {
|
LOG.debug(" header: " + JSON.toJSONString(header));
|
for (Iterator<Entry<String, String>> it = header.entrySet().iterator(); it.hasNext();) {
|
Entry<String, String> entry = (Entry<String, String>) it.next();
|
httpPost.setHeader(new BasicHeader(entry.getKey(), entry.getValue()));
|
}
|
}
|
// 发送请求,获取返回数据
|
body = execute(httpPost);
|
} catch (Exception e) {
|
throw e;
|
}
|
LOG.debug(" result: " + body);
|
return body;
|
}
|
|
/**
|
* get请求
|
*/
|
public String doGet(String url) throws Exception {
|
return doGet(url, null, null);
|
}
|
|
public String doGet(String url, Map<String, String> header) throws Exception {
|
return doGet(url, null, header);
|
}
|
|
public String doGet(String url, Map<String, Object> params, Map<String, String> header) throws Exception {
|
String body = null;
|
try {
|
// Get请求
|
LOG.debug("protocol: GET");
|
HttpGet httpGet = new HttpGet(url.trim());
|
// 设置参数
|
if (params != null && !params.isEmpty()) {
|
String str = EntityUtils.toString(new UrlEncodedFormEntity(map2NameValuePairList(params), charset));
|
String uri = httpGet.getURI().toString();
|
if(uri.indexOf("?") >= 0){
|
httpGet.setURI(new URI(httpGet.getURI().toString() + "&" + str));
|
}else {
|
httpGet.setURI(new URI(httpGet.getURI().toString() + "?" + str));
|
}
|
}
|
LOG.debug(" url: " + httpGet.getURI());
|
// 设置Header
|
if (header != null && !header.isEmpty()) {
|
LOG.debug(" header: " + header);
|
for (Iterator<Entry<String, String>> it = header.entrySet().iterator(); it.hasNext();) {
|
Entry<String, String> entry = (Entry<String, String>) it.next();
|
httpGet.setHeader(new BasicHeader(entry.getKey(), entry.getValue()));
|
}
|
}
|
// 发送请求,获取返回数据
|
body = execute(httpGet);
|
} catch (Exception e) {
|
throw e;
|
}
|
LOG.debug(" result: " + body);
|
return body;
|
}
|
|
|
|
|
private String execute(HttpRequestBase requestBase) throws Exception {
|
CloseableHttpClient httpclient = HttpClients.createDefault();
|
String body = null;
|
try {
|
CloseableHttpResponse response = httpclient.execute(requestBase);
|
try {
|
HttpEntity entity = response.getEntity();
|
if (entity != null) {
|
body = EntityUtils.toString(entity, charset.toString());
|
}
|
EntityUtils.consume(entity);
|
} catch (Exception e) {
|
throw e;
|
}finally {
|
response.close();
|
}
|
} catch (Exception e) {
|
throw e;
|
} finally {
|
httpclient.close();
|
}
|
return body;
|
}
|
|
private List<NameValuePair> map2NameValuePairList(Map<String, Object> params) {
|
if (params != null && !params.isEmpty()) {
|
List<NameValuePair> list = new ArrayList<NameValuePair>();
|
Iterator<String> it = params.keySet().iterator();
|
while (it.hasNext()) {
|
String key = it.next();
|
if(params.get(key) != null) {
|
String value = String.valueOf(params.get(key));
|
list.add(new BasicNameValuePair(key, value));
|
}
|
}
|
return list;
|
}
|
return null;
|
}
|
|
|
|
public static void main(String[] args) {
|
|
String url = "http://dvopenapi.aimap.net.cn/openapi/device/location";
|
Map<String, Object> params = new HashMap<>();
|
// params.put("beginTime", 1585059861400L);
|
// params.put("endTime", 1585059862400L);
|
// params.put("alarmType ", "8");
|
params.put("imei", "861636056082414");
|
params.put("appId", "PO00000761");
|
params.put("timestamp", System.currentTimeMillis());
|
String secert="dXRGb2pRNVdWOGQ3d1ouV29UYzc1MnJaUnBwTzUx";
|
|
String computeSign = "";
|
try {
|
computeSign = Md5SignUtil.signRequest(params, secert);
|
} catch (IOException e1) {
|
e1.printStackTrace();
|
}
|
params.put("sign",computeSign);
|
try {
|
//String res = HttpReqUtil.getInstance().doGet(url, params, null);
|
String res = HttpReqUtil.getInstance().doPost(url, params, null);
|
System.out.println("----"+res);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
}
|