| | |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.google.common.collect.Maps; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.http.client.config.RequestConfig; |
| | | import org.apache.http.client.methods.CloseableHttpResponse; |
| | | import org.apache.http.client.methods.HttpGet; |
| | | import org.apache.http.impl.client.CloseableHttpClient; |
| | |
| | | |
| | | public static String sign(String accessSecret, TreeMap<String, String> params, HttpMethod method) throws Exception { |
| | | String stringToSign = getStringToSign(params, method); |
| | | System.out.println("StringToSign = [" + stringToSign + "]"); |
| | | javax.crypto.Mac mac = javax.crypto.Mac.getInstance("HmacSHA1"); |
| | | mac.init(new javax.crypto.spec.SecretKeySpec(accessSecret.getBytes(DEFAULT_CHARSET), "HmacSHA1")); |
| | | byte[] signData = mac.doFinal(stringToSign.getBytes(DEFAULT_CHARSET)); |
| | |
| | | Collections.sort(list, (o1, o2) -> { |
| | | return (int) (o2.getTimeStamp() - o1.getTimeStamp()); //按时间倒序 |
| | | }); |
| | | System.out.println(JSONObject.toJSONString(list)); |
| | | return list; |
| | | } |
| | | |
| | |
| | | |
| | | public static String sendRequest(String url,TreeMap<String, String> map){ |
| | | try { |
| | | |
| | | map.put("random", System.currentTimeMillis()+""); |
| | | StringBuilder sortQueryStringTmp = new StringBuilder(); |
| | | for(Map.Entry<String, String> entry : map.entrySet()){ |
| | | sortQueryStringTmp |
| | |
| | | //与下方的HttpGet对应,采用的是HttpMethod.GET |
| | | String sign = sign(ACCESS_SECRET + "&", map, HttpMethod.GET); |
| | | url += "?Signature=" + specialUrlEncode(sign) + sortQueryStringTmp.toString(); |
| | | RequestConfig requestConfig = RequestConfig.custom() |
| | | .setSocketTimeout(5000) // 设置读取超时时间(单位:毫秒) |
| | | .setConnectTimeout(5000) // 设置连接超时时间(单位:毫秒) |
| | | .build(); |
| | | CloseableHttpClient httpClient = HttpClientBuilder.create().build(); |
| | | //与上方的HttpMethod.GET对应,使用HttpGet |
| | | HttpGet httpDelete = new HttpGet(url); |
| | | httpDelete.setConfig(requestConfig); |
| | | CloseableHttpResponse response = httpClient.execute(httpDelete); |
| | | return EntityUtils.toString(response.getEntity()); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | System.err.println(url); |
| | | } |
| | | |
| | | return null; |
| | |
| | | return null; |
| | | } |
| | | public static CarsGpsResponse getLatestGpsInfo(String deviceCode) { |
| | | String url = BASE_URL + "gps/latest/"; |
| | | TreeMap<String, String> BASE_PARAMS = getBaseParams(); |
| | | BASE_PARAMS.put("deviceCode", deviceCode);//设备型号秘钥 |
| | | String str = sendRequest(url,BASE_PARAMS); |
| | | TypeReference typeReference = |
| | | new TypeReference<BaseCarsResponse<CarsGpsResponse>>(){}; |
| | | BaseCarsResponse<CarsGpsResponse> result = JSONObject.parseObject(str, typeReference.getType()); |
| | | if(result!=null && Constants.equalsInteger(result.getStatus(),0)){ |
| | | return result.getData(); |
| | | try { |
| | | String url = BASE_URL + "gps/latest/"; |
| | | TreeMap<String, String> BASE_PARAMS = getBaseParams(); |
| | | BASE_PARAMS.put("deviceCode", deviceCode);//设备型号秘钥 |
| | | String str = sendRequest(url,BASE_PARAMS); |
| | | TypeReference typeReference = |
| | | new TypeReference<BaseCarsResponse<CarsGpsResponse>>(){}; |
| | | BaseCarsResponse<CarsGpsResponse> result = JSONObject.parseObject(str, typeReference.getType()); |
| | | if(result!=null && Constants.equalsInteger(result.getStatus(),0)){ |
| | | return result.getData(); |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | public static Map<String,Integer> getDeviceStatusList(List<String> code) { |