package com.stylefeng.guns.modular.system.util.three;
|
|
import com.alibaba.fastjson.JSONObject;
|
import org.apache.http.HttpResponse;
|
import org.apache.http.NameValuePair;
|
import org.apache.http.client.HttpClient;
|
import org.apache.http.client.config.RequestConfig;
|
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.utils.URIBuilder;
|
import org.apache.http.entity.ContentType;
|
import org.apache.http.entity.StringEntity;
|
import org.apache.http.impl.client.CloseableHttpClient;
|
import org.apache.http.impl.client.HttpClientBuilder;
|
import org.apache.http.impl.client.HttpClients;
|
import org.apache.http.message.BasicNameValuePair;
|
import org.apache.http.util.EntityUtils;
|
|
import java.io.BufferedReader;
|
import java.io.IOException;
|
import java.io.InputStreamReader;
|
import java.net.URI;
|
import java.text.DateFormat;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
|
public class PlatformUtil {
|
public static String doGet(String url, Map<String, String> param) {
|
// 创建Httpclient对象
|
CloseableHttpClient httpclient = HttpClients.createDefault();
|
String resultString = "";
|
CloseableHttpResponse response = null;
|
try {
|
// 创建uri
|
URIBuilder builder = new URIBuilder(url);
|
if (param != null) {
|
for (String key : param.keySet()) {
|
builder.addParameter(key, param.get(key));
|
}
|
}
|
URI uri = builder.build();
|
|
// 创建http GET请求
|
HttpGet httpGet = new HttpGet(uri);
|
|
// 执行请求
|
response = httpclient.execute(httpGet);
|
// 判断返回状态是否为200
|
if (response.getStatusLine().getStatusCode() == 200) {
|
resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
} finally {
|
try {
|
if (response != null) {
|
response.close();
|
}
|
httpclient.close();
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
return resultString;
|
}
|
|
public static String doGet(String url) {
|
return doGet(url, null);
|
}
|
|
public static String doPost(String url, Map<String, String> param) {
|
// 创建Httpclient对象
|
CloseableHttpClient httpClient = HttpClients.createDefault();
|
CloseableHttpResponse response = null;
|
String resultString = "";
|
try {
|
// 创建Http Post请求
|
HttpPost httpPost = new HttpPost(url);
|
// 创建参数列表
|
if (param != null) {
|
List<NameValuePair> paramList = new ArrayList<NameValuePair>();
|
for (String key : param.keySet()) {
|
paramList.add(new BasicNameValuePair(key, param.get(key)));
|
}
|
// 模拟表单
|
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList);
|
httpPost.setEntity(entity);
|
}
|
// 执行http请求
|
response = httpClient.execute(httpPost);
|
resultString = EntityUtils.toString(response.getEntity(), "utf-8");
|
} catch (Exception e) {
|
e.printStackTrace();
|
} finally {
|
try {
|
response.close();
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
|
return resultString;
|
}
|
|
public static String doPost(String url) {
|
return doPost(url, null);
|
}
|
|
public static String doPostJson(String url, String json,Map<String, String> headers) {
|
// 创建Httpclient对象
|
CloseableHttpClient httpClient = HttpClients.createDefault();
|
CloseableHttpResponse response = null;
|
String resultString = "";
|
|
try {
|
// 创建Http Post请求
|
HttpPost httpPost = new HttpPost(url);
|
// 添加http headers
|
if (headers != null && headers.size() > 0) {
|
for (String key : headers.keySet()) {
|
httpPost.addHeader(key, headers.get(key));
|
}
|
}
|
// 创建请求内容
|
StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);
|
httpPost.setEntity(entity);
|
// 执行http请求
|
response = httpClient.execute(httpPost);
|
resultString = EntityUtils.toString(response.getEntity(), "utf-8");
|
} catch (Exception e) {
|
e.printStackTrace();
|
} finally {
|
try {
|
response.close();
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
|
return resultString;
|
}
|
public static String doPostJson1(String url, String json,Map<String, String> headers) {
|
// 创建Httpclient对象
|
CloseableHttpClient httpClient = HttpClients.createDefault();
|
CloseableHttpResponse response = null;
|
String resultString = "";
|
|
try {
|
// 创建Http Post请求
|
HttpPost httpPost = new HttpPost(url);
|
// 添加http headers
|
if (headers != null && headers.size() > 0) {
|
for (String key : headers.keySet()) {
|
httpPost.addHeader(key, headers.get(key));
|
}
|
}
|
// 创建请求内容
|
StringEntity entity = new StringEntity(json, ContentType.create("application/x-www-form-urlencoded","UTF-8"));
|
httpPost.setEntity(entity);
|
// 执行http请求
|
response = httpClient.execute(httpPost);
|
resultString = EntityUtils.toString(response.getEntity(), "utf-8");
|
} catch (Exception e) {
|
e.printStackTrace();
|
} finally {
|
try {
|
response.close();
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
return resultString;
|
}
|
|
public static String doGet(String url, String param, Map<String, String> headers, int timeout) {
|
String result = "";
|
BufferedReader in = null;
|
String reqUrl = url + "?" + param;
|
try {
|
// 构造httprequest设置
|
RequestConfig config = RequestConfig.custom().setConnectTimeout(timeout)
|
.setConnectionRequestTimeout(timeout).build();
|
HttpClient client = HttpClientBuilder.create().setDefaultRequestConfig(config).build();
|
HttpGet htGet = new HttpGet(reqUrl);
|
// 添加http headers
|
if (headers != null && headers.size() > 0) {
|
for (String key : headers.keySet()) {
|
htGet.addHeader(key, headers.get(key));
|
}
|
}
|
// 读取数据
|
HttpResponse r = client.execute(htGet);
|
in = new BufferedReader(new InputStreamReader(r.getEntity().getContent(), "UTF-8"));
|
String line;
|
while ((line = in.readLine()) != null) {
|
result += line;
|
}
|
} catch (Exception e) {
|
System.out.println("发送GET请求出现异常!" + e);
|
e.printStackTrace();
|
} finally {
|
try {
|
if (in != null) {
|
in = null;
|
}
|
} catch (Exception e2) {
|
e2.printStackTrace();
|
}
|
}
|
return result;
|
}
|
|
/**
|
* 价格预估
|
* @param host 访问路径
|
* @param appkey 秘钥
|
* @param appId 用户id
|
* @param startLat 起点纬度
|
* @param startLng 起点经度
|
* @param startName 起点名称
|
* @param endLat 终点纬度
|
* @param endLng 终点经度
|
* @param endName 终点名称
|
* @param rideType 运力类型
|
* @param departureTime 出行时间
|
* @return
|
*/
|
public static JSONObject estimatesPrices(String host,String appkey,String appId,String startLat
|
,String startLng,String startName,String endLat,String endLng,String endName,String rideType,String departureTime){
|
Map<String,Object> map = new HashMap<>();
|
map.put("startLat", startLat);
|
map.put("startLng", startLng);
|
map.put("startName", startName);
|
map.put("endLat", endLat);
|
map.put("endLng", endLng);
|
map.put("endName", endName);
|
map.put("rideType", rideType);
|
map.put("departureTime", departureTime);
|
String jsonMsg =JSONObject.toJSONString(map);
|
String signature = null;
|
String url = "/api/platform/estimatesPrices";
|
TokenUtil.RequestEntity req = new TokenUtil.RequestEntity();
|
req.setReqMethod(TokenUtil.REQ_METHOD_GET);
|
req.setUri(url);
|
req.setContent(jsonMsg);
|
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
String time = dateFormat.format(new Date());
|
req.setReqTime(time);
|
req.setEncryptKey(appkey);
|
try {
|
signature = TokenUtil.generateToken(req);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
|
Map<String,String> headers = new HashMap<String, String>();
|
headers.put("appId", appId);
|
headers.put("reqTime",time);
|
headers.put("token",signature);
|
|
String response = PlatformUtil.doPostJson(host+url,req.getContent(),headers);
|
return JSONObject.parseObject(response);
|
}
|
|
/**
|
* 取消订单
|
* @param host 访问路径
|
* @param appkey 秘钥
|
* @param appId 用户id
|
* @param oid 订单id
|
* @param passengerPhone 乘客手机号(用于判断该手机号下订单唯一)
|
* @return
|
*/
|
public static JSONObject cancleOrder(String host,String appkey,String appId,String oid
|
,String passengerPhone){
|
Map<String,Object> map = new HashMap<>();
|
map.put("startLat", oid);
|
map.put("startLng", passengerPhone);
|
String jsonMsg =JSONObject.toJSONString(map);
|
String signature = null;
|
String url = "/api/platform/cancleOrder";
|
TokenUtil.RequestEntity req = new TokenUtil.RequestEntity();
|
req.setReqMethod(TokenUtil.REQ_METHOD_POST);
|
req.setUri(url);
|
req.setContent(jsonMsg);
|
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
String time = dateFormat.format(new Date());
|
req.setReqTime(time);
|
req.setEncryptKey(appkey);
|
try {
|
signature = TokenUtil.generateToken(req);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
|
Map<String,String> headers = new HashMap<String, String>();
|
headers.put("appId", appId);
|
headers.put("reqTime",time);
|
headers.put("token",signature);
|
|
String response = PlatformUtil.doPostJson(host+url,req.getContent(),headers);
|
return JSONObject.parseObject(response);
|
}
|
|
/**
|
* 叫单
|
* @param host 访问路径
|
* @param appkey 秘钥
|
* @param appId 用户id
|
* @param startLat 起点纬度
|
* @param startLng 起点经度
|
* @param startName 起点名称
|
* @param endLat 终点纬度
|
* @param endLng 终点经度
|
* @param endName 终点名称
|
* @param rideType 运力类型
|
* @param departureTime 出行时间
|
* @param oid 订单id
|
* @param passengerName 乘客手机号
|
* @param passengerPhone 乘客名称
|
* @param userId 第三方平台用户Id
|
* @param userPhone 用户电话(与乘客电话相同可以不填)
|
* @param userName 用户姓名(与乘客姓名相同可以不填)
|
* @return
|
*/
|
public static JSONObject sendOrder(String host,String appkey,String appId,String startLat
|
,String startLng,String startName,String endLat,String endLng,String endName,String rideType,String departureTime,String oid
|
,String passengerName,String passengerPhone,String userId,String userPhone,String userName){
|
Map<String,Object> map = new HashMap<>();
|
map.put("oid", oid);
|
map.put("passengerPhone", passengerPhone);
|
map.put("userId", userId);
|
map.put("passengerName", passengerName);
|
map.put("userName", userName);
|
map.put("userPhone", userPhone);
|
map.put("startLat", startLat);
|
map.put("startLng", startLng);
|
map.put("startName", startName);
|
map.put("endLat", endLat);
|
map.put("endLng", endLng);
|
map.put("endName", endName);
|
map.put("rideType", rideType);
|
map.put("departureTime", departureTime);
|
String jsonMsg =JSONObject.toJSONString(map);
|
String signature = null;
|
String url = "/api/platform/estimatesPrices";
|
TokenUtil.RequestEntity req = new TokenUtil.RequestEntity();
|
req.setReqMethod(TokenUtil.REQ_METHOD_POST);
|
req.setUri(url);
|
req.setContent(jsonMsg);
|
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
String time = dateFormat.format(new Date());
|
req.setReqTime(time);
|
req.setEncryptKey(appkey);
|
try {
|
signature = TokenUtil.generateToken(req);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
|
Map<String,String> headers = new HashMap<String, String>();
|
headers.put("appId", appId);
|
headers.put("reqTime",time);
|
headers.put("token",signature);
|
|
String response = PlatformUtil.doPostJson(host+url,req.getContent(),headers);
|
return JSONObject.parseObject(response);
|
}
|
public static void main(String[] args) {
|
}
|
}
|