@OverridepublicResultDTO deleteClientId(String clientid){
log.info("deleteClientId 设备禁用,下行指令剔除原mqtt的clientid连接,入参clientid: {}", clientid);try{/*传入的clientid 可能有特殊字符,先进行字符转换*/clientid= URLEncoder.encode(clientid,"UTF-8");
}catch(UnsupportedEncodingException e) {
e.printStackTrace();returnResultDTO.getFailure();
}//这里拼接处要删除clientid 地址。例:http://127.0.0.1:18083/api/v4/clients/clientid_test
String url =String.format(ConstantConfig.MQTT_DASHBOARD_URL_STR, ConstantConfig.getServerConfig().getProperty(ConstantConfig.MQTT_DASHBOARD_URL).trim(), clientid );
CloseableHttpClient httpClient=HttpClients.createDefault();
HttpDelete httpDelete= newHttpDelete(url);
RequestConfig requestConfig= RequestConfig.custom().setConnectTimeout(35000).setConnectionRequestTimeout(35000).setSocketTimeout(60000).build();
httpDelete.setConfig(requestConfig);//这里emqx web的登录名密码。例:admin:public
String authString = ConstantConfig.getServerConfig().getProperty(ConstantConfig.MQTT_DASHBOARD_USER).trim()+":"+ConstantConfig.getServerConfig().getProperty(ConstantConfig.MQTT_DASHBOARD_PASSWORD).trim();byte[] authEncBytes =Base64.encodeBase64(authString.getBytes());
String authStringEnc= newString(authEncBytes);
httpDelete.setHeader("Authorization", "Basic" +authStringEnc);
httpDelete.setHeader("Content-type", "application/json");
httpDelete.setHeader("DataEncoding", "UTF-8");
CloseableHttpResponse httpResponse= null;try{//通过http请求进行访问。
httpResponse =httpClient.execute(httpDelete);
HttpEntity entity=httpResponse.getEntity();//获得删除结果
String result =EntityUtils.toString(entity);
}catch(ClientProtocolException e) {
e.printStackTrace();returnResultDTO.getFailure();
}catch(IOException e) {
e.printStackTrace();returnResultDTO.getFailure();
}finally{if (httpResponse != null) {try{
httpResponse.close();
}catch(IOException e) {
e.printStackTrace();
}
}if (null !=httpClient) {try{
httpClient.close();
}catch(IOException e) {
e.printStackTrace();
}
}
}returnResultDTO.getSuccess();
}