
4 changed files with 731 additions and 0 deletions
@ -0,0 +1,181 @@ |
|||
package com.yxt.supervise.monitor.biz.call; |
|||
|
|||
import cn.hutool.core.bean.BeanUtil; |
|||
import cn.hutool.http.HttpUtil; |
|||
import com.alibaba.fastjson.JSON; |
|||
import com.alibaba.fastjson.JSONObject; |
|||
import com.yxt.common.core.query.PagerQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import com.yxt.common.core.vo.PagerVo; |
|||
import com.yxt.supervise.monitor.api.demobaseentity.DemoBaseentity; |
|||
import com.yxt.supervise.monitor.api.demobaseentity.DemoBaseentityDto; |
|||
import com.yxt.supervise.monitor.api.demobaseentity.DemoBaseentityQuery; |
|||
import com.yxt.supervise.monitor.api.demobaseentity.DemoBaseentityVo; |
|||
import com.yxt.supervise.monitor.biz.demobaseentity.DemoBaseentityService; |
|||
import com.yxt.supervise.monitor.biz.util.HttpUtils; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.apache.http.client.methods.HttpGet; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.io.IOException; |
|||
import java.security.KeyManagementException; |
|||
import java.security.KeyStoreException; |
|||
import java.security.NoSuchAlgorithmException; |
|||
import java.util.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
@Api(tags = "基础实体类") |
|||
@RestController("com.yxt.supervise.monitor.biz.call.CallRest") |
|||
@RequestMapping("/call") |
|||
public class CallRest { |
|||
|
|||
@Autowired |
|||
private DemoBaseentityService demoBaseentityService; |
|||
|
|||
@ApiOperation("根据条件分页查询数据的列表") |
|||
@PostMapping("/listPage") |
|||
public ResultBean<PagerVo<DemoBaseentityVo>> listPage(@RequestBody PagerQuery<DemoBaseentityQuery> pq) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
PagerVo<DemoBaseentityVo> pv = demoBaseentityService.listPageVo(pq); |
|||
return rb.success().setData(pv); |
|||
} |
|||
|
|||
@ApiOperation("获取token") |
|||
@GetMapping("/getCallToken") |
|||
public String getCallToken() throws Exception { |
|||
String url = "https://api2.hik-cloud.com/oauth/token"; |
|||
Map<String, Object> param = new HashMap<>(); |
|||
param.put("client_id", "e8e655dfcb154be6962f270fe375edc1"); // 客户端ID String
|
|||
param.put("client_secret", "3ca20239398c4b86b27c6a080d8345e1"); //访问密钥 String
|
|||
param.put("grant_type", "client_credentials"); //认证模式 String 目前仅支持client_credentials
|
|||
String result = HttpUtils.sendPostMap(url, param,""); |
|||
return result; |
|||
} |
|||
|
|||
@ApiOperation("获取子系统列表") |
|||
@GetMapping("/getCallSonList") |
|||
public String getCallSonList() throws NoSuchAlgorithmException, KeyStoreException, IOException, KeyManagementException { |
|||
// deviceSerial 设备序列号 String
|
|||
String url = "https://api2.hik-cloud.com/api/v1/device/isapi/alarmHost/subSystems?deviceSerial=Q16362484"; |
|||
String result = HttpUtils.sendGet(url, "35ad3e80-1de4-4477-827e-0473320cf644"); |
|||
return result; |
|||
} |
|||
|
|||
@ApiOperation("子系统布防") |
|||
@GetMapping("/getCallArm") |
|||
public String getCallArm() { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
String url = "https://api2.hik-cloud.com/api/v1/device/isapi/alarmHost/subSystem/arm"; |
|||
Map<String, Object> param = new HashMap<>(); |
|||
param.put("deviceSerial", "Q16362484"); //设备序列号 string
|
|||
param.put("sysId", 2); //子系统id int
|
|||
param.put("armType", "stay"); //布防类型,stay:在家布防;away:外出布防 string
|
|||
String paramJson = JSONObject.toJSONString(param); |
|||
String result = HttpUtils.sendPostJson(url, paramJson, "35ad3e80-1de4-4477-827e-0473320cf644"); |
|||
return result; |
|||
} |
|||
|
|||
@ApiOperation("子系统撤防") |
|||
@GetMapping("/getCallDisArm") |
|||
public String getCallDisArm(){ |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
String url = "https://api2.hik-cloud.com/api/v1/device/isapi/alarmHost/subSystem/disarm"; |
|||
Map<String, Object> param = new HashMap<>(); |
|||
param.put("deviceSerial", "Q16362484"); // 设备序列号 string
|
|||
param.put("sysId", 1); // 子系统id int
|
|||
String paramJson = JSONObject.toJSONString(param); |
|||
String result = HttpUtils.sendPostJson(url, paramJson, "35ad3e80-1de4-4477-827e-0473320cf644"); |
|||
return result; |
|||
} |
|||
|
|||
@ApiOperation("创建消息消费者") |
|||
@GetMapping("/createCallConsumer") |
|||
public String createConsumer() { |
|||
/** |
|||
* 1.该接口用于创建消费者ID,最多同时存在五个消费者ID。 |
|||
* |
|||
* 2.消费者如果5分钟未调用拉取消息接口将被删除。 |
|||
*/ |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
String url = "https://api2.hik-cloud.com/api/v1/mq/consumer/group1"; |
|||
Map<String, Object> param = new HashMap<>(); |
|||
String result = HttpUtils.sendPostMap(url, param, "35ad3e80-1de4-4477-827e-0473320cf644"); |
|||
return result; |
|||
} |
|||
|
|||
@ApiOperation("获取消息列表") |
|||
@GetMapping("/getCallMessageList") |
|||
public String getMessageList(String consumerId) { |
|||
/** |
|||
* 1.该接口用于创建消费者ID,最多同时存在五个消费者ID。 |
|||
* |
|||
* 2.消费者如果5分钟未调用拉取消息接口将被删除。 |
|||
*/ |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
String url = "https://api2.hik-cloud.com/api/v1/mq/consumer/messages"; |
|||
Map<String, Object> param = new HashMap<>(); |
|||
param.put("consumerId", consumerId); // 消费者id string
|
|||
// param.put("consumerId", "220bb942f63746d5a885703659bf08cd"); // 消费者id string
|
|||
String result = HttpUtils.sendPostMap(url, param, "35ad3e80-1de4-4477-827e-0473320cf644"); |
|||
return result; |
|||
} |
|||
|
|||
@ApiOperation("提交消息偏移量") |
|||
@GetMapping("/doCallMessageOffsets") |
|||
public String doMessageOffsets(String consumerId){ |
|||
/** |
|||
* 1.该接口用于创建消费者ID,最多同时存在五个消费者ID。 |
|||
* |
|||
* 2.消费者如果5分钟未调用拉取消息接口将被删除。 |
|||
*/ |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
String url = "https://api2.hik-cloud.com/api/v1/mq/consumer/offsets"; |
|||
Map<String, Object> param = new HashMap<>(); |
|||
param.put("consumerId", consumerId); // 消费者id string
|
|||
// param.put("consumerId", "220bb942f63746d5a885703659bf08cd"); // 消费者id string
|
|||
String result = HttpUtils.sendPostMap(url, param, "35ad3e80-1de4-4477-827e-0473320cf644"); |
|||
return result; |
|||
} |
|||
|
|||
|
|||
@ApiOperation("获取所有防区状态") |
|||
@GetMapping("/getCallZoneStatusList") |
|||
public String getCallZoneStatusList(String consumerId) throws NoSuchAlgorithmException, KeyStoreException, IOException, KeyManagementException { |
|||
String url = "https://api2.hik-cloud.com/api/v1/device/isapi/alarmHost/zoneStatus/list?deviceSerial=Q16362484"; |
|||
String result = HttpUtils.sendGet(url, "35ad3e80-1de4-4477-827e-0473320cf644"); |
|||
return result; |
|||
} |
|||
|
|||
@ApiOperation("新增") |
|||
@PostMapping("/insert") |
|||
public ResultBean save(@RequestBody DemoBaseentityDto dto) { |
|||
return demoBaseentityService.saveInsert(dto); |
|||
} |
|||
|
|||
@ApiOperation("修改") |
|||
@PostMapping("/update") |
|||
public ResultBean update(@RequestBody DemoBaseentityDto dto) { |
|||
return demoBaseentityService.saveUpdate(dto); |
|||
} |
|||
|
|||
@ApiOperation("根据sid查询") |
|||
@GetMapping("/fetchVoBySid/{sid}") |
|||
public ResultBean<DemoBaseentityVo> fetchVoBySid(@PathVariable String sid) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
DemoBaseentity entity = demoBaseentityService.fetchBySid(sid); |
|||
DemoBaseentityVo vo = new DemoBaseentityVo(); |
|||
BeanUtil.copyProperties(entity, vo); |
|||
return rb.success().setData(vo); |
|||
} |
|||
|
|||
@ApiOperation("删除") |
|||
@DeleteMapping("/deleteBySid/{sid}") |
|||
public ResultBean deleteBySid(@PathVariable String sid) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
int i = demoBaseentityService.deleteBySid(sid); |
|||
return rb.success().setMsg("删除成功"); |
|||
} |
|||
} |
@ -0,0 +1,464 @@ |
|||
package com.yxt.supervise.monitor.biz.util; |
|||
|
|||
import net.sf.json.JSONObject; |
|||
import org.apache.http.*; |
|||
import org.apache.http.client.ClientProtocolException; |
|||
import org.apache.http.client.CookieStore; |
|||
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.conn.ClientConnectionManager; |
|||
import org.apache.http.conn.scheme.Scheme; |
|||
import org.apache.http.conn.scheme.SchemeRegistry; |
|||
import org.apache.http.conn.ssl.SSLConnectionSocketFactory; |
|||
import org.apache.http.conn.ssl.SSLSocketFactory; |
|||
import org.apache.http.cookie.Cookie; |
|||
import org.apache.http.entity.ContentType; |
|||
import org.apache.http.entity.StringEntity; |
|||
import org.apache.http.impl.client.BasicCookieStore; |
|||
import org.apache.http.impl.client.CloseableHttpClient; |
|||
import org.apache.http.impl.client.DefaultHttpClient; |
|||
import org.apache.http.impl.client.HttpClients; |
|||
import org.apache.http.message.BasicNameValuePair; |
|||
import org.apache.http.ssl.SSLContextBuilder; |
|||
import org.apache.http.ssl.TrustStrategy; |
|||
import org.apache.http.util.EntityUtils; |
|||
|
|||
import javax.net.ssl.SSLContext; |
|||
import javax.net.ssl.TrustManager; |
|||
import javax.net.ssl.X509TrustManager; |
|||
import java.io.ByteArrayOutputStream; |
|||
import java.io.IOException; |
|||
import java.io.InputStream; |
|||
import java.io.OutputStream; |
|||
import java.net.HttpURLConnection; |
|||
import java.net.URL; |
|||
import java.security.KeyManagementException; |
|||
import java.security.KeyStoreException; |
|||
import java.security.NoSuchAlgorithmException; |
|||
import java.security.cert.CertificateException; |
|||
import java.security.cert.X509Certificate; |
|||
import java.text.SimpleDateFormat; |
|||
import java.util.ArrayList; |
|||
import java.util.Iterator; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* Created by Administrator on 2019/4/11. |
|||
*/ |
|||
public class HttpUtils { |
|||
|
|||
private static CloseableHttpClient httpClient; |
|||
|
|||
/** |
|||
* 创建没有证书的SSL链接工厂类 |
|||
* |
|||
* @return |
|||
* @throws NoSuchAlgorithmException |
|||
* @throws KeyStoreException |
|||
* @throws KeyManagementException |
|||
*/ |
|||
public static SSLConnectionSocketFactory getSSLConnectionSocketFactory() throws NoSuchAlgorithmException, |
|||
KeyStoreException, KeyManagementException { |
|||
SSLContextBuilder context = new SSLContextBuilder().useProtocol("TLSv1.2"); |
|||
|
|||
context.loadTrustMaterial(null, new TrustStrategy() { |
|||
|
|||
public boolean isTrusted(X509Certificate[] arg0, String arg1) |
|||
throws CertificateException { |
|||
// TODO Auto-generated method stub
|
|||
return false; |
|||
} |
|||
// @Override
|
|||
// public boolean isTrusted(X509Certificate[] arg0, String arg1)
|
|||
// throws CertificateException {
|
|||
// return true;
|
|||
// }
|
|||
}); |
|||
return new SSLConnectionSocketFactory(context.build()); |
|||
} |
|||
|
|||
/** |
|||
* 发送HttpPost请求,参数为map |
|||
* @param url |
|||
* @param params |
|||
* @return |
|||
*/ |
|||
public static String sendPostJson(String url, String params,String token) { |
|||
CloseableHttpClient httpclient = HttpClients.createDefault(); |
|||
String EntityStr = null; |
|||
try { |
|||
HttpPost httppost = new HttpPost(url); |
|||
// for (Map.Entry<String, Object> entry : maps.entrySet()) {//设置header
|
|||
// httppost.setHeader(entry.getKey(),entry.getValue().toString());
|
|||
//
|
|||
// }
|
|||
httppost.setEntity(new StringEntity(params, ContentType.create("application/json", "UTF-8"))); |
|||
// StringEntity stringEntity = new StringEntity(params, "UTF-8");
|
|||
// stringEntity.setContentType("application/json");
|
|||
// httppost.setEntity(stringEntity);
|
|||
|
|||
// httppost.setHeader("Content-Type", "application/json");
|
|||
httppost.setHeader("Authorization", "Bearer " + token); |
|||
|
|||
CloseableHttpResponse response = httpclient.execute(httppost); |
|||
try { |
|||
HttpEntity resEntity = response.getEntity(); |
|||
if (resEntity != null) { |
|||
EntityStr = EntityUtils.toString(response.getEntity()); |
|||
// System.out.println("返回信息--" + EntityStr);
|
|||
|
|||
} else { |
|||
|
|||
} |
|||
EntityUtils.consume(resEntity); |
|||
} finally { |
|||
response.close(); |
|||
} |
|||
} catch (ClientProtocolException e) { |
|||
e.printStackTrace(); |
|||
} catch (IOException e) { |
|||
e.printStackTrace(); |
|||
} finally { |
|||
try { |
|||
httpclient.close(); |
|||
} catch (IOException e) { |
|||
e.printStackTrace(); |
|||
} |
|||
} |
|||
return EntityStr; |
|||
} |
|||
|
|||
/** |
|||
* post方式访问 |
|||
* |
|||
* @param url 路径 |
|||
* @param map 参数 |
|||
* @return |
|||
*/ |
|||
public static String sendPostMap(String url, Map<String, Object> map, String token) { |
|||
|
|||
String charset = "UTF-8"; |
|||
HttpClient httpClient = null; |
|||
HttpPost httpPost = null; |
|||
String result = null; |
|||
|
|||
try { |
|||
httpClient = new SSLClient(); |
|||
httpPost = new HttpPost(url); |
|||
//设置参数
|
|||
|
|||
List<NameValuePair> list = new ArrayList<NameValuePair>(); |
|||
Iterator iterator = map.entrySet().iterator(); |
|||
while (iterator.hasNext()) { |
|||
Map.Entry<String, String> elem = (Map.Entry<String, String>) iterator.next(); |
|||
list.add(new BasicNameValuePair(elem.getKey(), elem.getValue())); |
|||
} |
|||
if (list.size() > 0) { |
|||
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, charset); |
|||
httpPost.setEntity(entity); |
|||
} |
|||
if (token != "") { |
|||
httpPost.setHeader("Authorization", "Bearer " + token); |
|||
} |
|||
HttpResponse response = httpClient.execute(httpPost); |
|||
if (response != null) { |
|||
HttpEntity resEntity = response.getEntity(); |
|||
if (resEntity != null) { |
|||
result = EntityUtils.toString(resEntity, charset); |
|||
} |
|||
} |
|||
} catch (Exception ex) { |
|||
ex.printStackTrace(); |
|||
} |
|||
return result; |
|||
} |
|||
|
|||
/** |
|||
* 链接GET请求 |
|||
* |
|||
* @param url |
|||
* @return |
|||
* @throws KeyManagementException |
|||
* @throws NoSuchAlgorithmException |
|||
* @throws KeyStoreException |
|||
* @throws ClientProtocolException |
|||
* @throws IOException |
|||
*/ |
|||
public static String sendGet(String url, String token) throws KeyManagementException, |
|||
NoSuchAlgorithmException, KeyStoreException, ClientProtocolException, IOException { |
|||
String[] strArray = new String[5]; |
|||
// 获取cookies信息
|
|||
CookieStore store = new BasicCookieStore(); |
|||
CloseableHttpClient client = HttpClients.custom().setDefaultCookieStore(store).build(); |
|||
HttpGet httpGet = null; |
|||
CloseableHttpResponse resp = null; |
|||
String jsonString = ""; |
|||
try { |
|||
httpGet = new HttpGet(url); |
|||
httpGet.setHeader("Authorization", "Bearer " + token); |
|||
resp = client.execute(httpGet); |
|||
//读取cookie信息
|
|||
List<Cookie> cookielist = store.getCookies(); |
|||
for (Cookie c : cookielist) { |
|||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
|||
String cookie_name = c.getName(); |
|||
String cookie_value = c.getValue(); |
|||
String cookie_expiry_date = sdf.format(c.getExpiryDate()); |
|||
} |
|||
|
|||
HttpEntity entity = resp.getEntity(); |
|||
jsonString = EntityUtils.toString(entity, "UTF-8"); |
|||
|
|||
// String headCookie = "";
|
|||
// Header[] hs = resp.getHeaders("Set-Cookie");
|
|||
// if (hs.length > 0) {
|
|||
// headCookie = hs[0].toString();
|
|||
// }
|
|||
// strArray[0] = headCookie;
|
|||
// strArray[1] = jsonString;
|
|||
// return strArray;
|
|||
return jsonString; |
|||
} catch (Exception ex) { |
|||
return null; |
|||
} finally { |
|||
if (resp != null) { |
|||
try { |
|||
resp.close(); |
|||
} catch (IOException e) { |
|||
e.printStackTrace(); |
|||
} |
|||
} |
|||
if (httpGet != null) { |
|||
httpGet.releaseConnection(); |
|||
} |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 链接Post请求 (带类型的参数) |
|||
* |
|||
* @param url |
|||
* @param parameter |
|||
* @param cookies |
|||
* @return |
|||
* @throws Exception |
|||
*/ |
|||
public static String PostFomData(String url, Map<String, Object> parameter, String cookies) throws Exception { |
|||
URL urls = new URL(url); |
|||
HttpURLConnection connection = null; |
|||
OutputStream outputStream = null; |
|||
String rs = null; |
|||
try { |
|||
connection = (HttpURLConnection) urls.openConnection(); |
|||
connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=----footfoodapplicationrequestnetwork"); |
|||
connection.setDoOutput(true); |
|||
connection.setDoInput(true); |
|||
connection.setRequestProperty("Accept-Language", "zh-CN,zh;q=0.8"); |
|||
connection.setRequestProperty("Accept", "*/*"); |
|||
connection.setRequestProperty("Range", "bytes=" + ""); |
|||
connection.setRequestProperty("Cookie", cookies); |
|||
connection.setConnectTimeout(8000); |
|||
connection.setReadTimeout(20000); |
|||
connection.setRequestMethod("POST"); |
|||
|
|||
StringBuffer buffer = new StringBuffer(); |
|||
int len = 0; |
|||
if (parameter != null) |
|||
len = parameter.size(); |
|||
|
|||
for (Map.Entry<String, Object> vo : parameter.entrySet()) { |
|||
// vo.getKey();
|
|||
// vo.getValue();
|
|||
buffer.append("------footfoodapplicationrequestnetwork\r\n"); |
|||
buffer.append("Content-Disposition: form-data; name=\""); |
|||
buffer.append(vo.getKey()); |
|||
buffer.append("\"\r\n\r\n"); |
|||
buffer.append(vo.getValue()); |
|||
buffer.append("\r\n"); |
|||
} |
|||
if (parameter != null) |
|||
buffer.append("------footfoodapplicationrequestnetwork--\r\n"); |
|||
outputStream = connection.getOutputStream(); |
|||
outputStream.write(buffer.toString().getBytes()); |
|||
try { |
|||
connection.connect(); |
|||
if (connection.getResponseCode() == 200) { |
|||
InputStream is = connection.getInputStream(); |
|||
ByteArrayOutputStream baos = new ByteArrayOutputStream(); |
|||
int i; |
|||
while ((i = is.read()) != -1) { |
|||
baos.write(i); |
|||
} |
|||
rs = baos.toString(); |
|||
JSONObject obj = JSONObject.fromObject(rs); |
|||
if (obj.getBoolean("success")) { |
|||
return "ok"; |
|||
} else { |
|||
String result_temp = UicodeBackslashU.unicodeToCn(obj.getString("error_desc")); |
|||
return result_temp; |
|||
} |
|||
// rs = getWebSource(connection.getInputStream());
|
|||
} |
|||
} catch (Exception e) { |
|||
rs = null; |
|||
} |
|||
return rs; |
|||
} finally { |
|||
try { |
|||
outputStream.close(); |
|||
} catch (Exception e) { |
|||
} |
|||
outputStream = null; |
|||
if (connection != null) |
|||
connection.disconnect(); |
|||
connection = null; |
|||
} |
|||
} |
|||
// -------------------------------------------------------------------------------------------------------
|
|||
|
|||
/** |
|||
* 链接POST请求 |
|||
* |
|||
* @param url |
|||
* @param jsonParm |
|||
* @return |
|||
* @throws KeyManagementException |
|||
* @throws NoSuchAlgorithmException |
|||
* @throws KeyStoreException |
|||
* @throws ClientProtocolException |
|||
* @throws IOException |
|||
*/ |
|||
public static String connectPostJsonUrl(String url, String jsonParm, String token) throws KeyManagementException, |
|||
NoSuchAlgorithmException, KeyStoreException, ClientProtocolException, IOException { |
|||
SSLConnectionSocketFactory sslsf = getSSLConnectionSocketFactory(); |
|||
CloseableHttpClient client = HttpClients.custom().setSSLSocketFactory(sslsf).build(); |
|||
RequestConfig config = RequestConfig.custom().setSocketTimeout(10000).setConnectTimeout(5000).build(); |
|||
HttpPost httpPost = null; |
|||
CloseableHttpResponse resp = null; |
|||
try { |
|||
httpPost = new HttpPost(url); |
|||
httpPost.setConfig(config); |
|||
StringEntity params = new StringEntity(jsonParm, "UTF-8"); |
|||
params.setContentType("application/json"); |
|||
httpPost.setEntity(params); |
|||
|
|||
if (token != "") { |
|||
httpPost.setHeader("Authorization", "Bearer " + token); |
|||
} |
|||
resp = client.execute(httpPost); |
|||
|
|||
// 获取返回
|
|||
HttpEntity entity = resp.getEntity(); |
|||
String jsonString = EntityUtils.toString(entity, "UTF-8"); |
|||
jsonString = UicodeBackslashU.unicodeToCn(jsonString); |
|||
|
|||
// 获取头部
|
|||
Header[] hs = resp.getHeaders("Set-Cookie"); |
|||
String headCookie = hs[0].toString(); |
|||
|
|||
if (resp.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { |
|||
return jsonString; |
|||
} |
|||
} catch (IOException e) { |
|||
if (e instanceof org.apache.http.conn.ConnectTimeoutException) { |
|||
throw new org.apache.http.conn.ConnectTimeoutException("connect timed out"); |
|||
} |
|||
if (e instanceof java.net.SocketTimeoutException) { |
|||
throw new java.net.SocketTimeoutException("Read timed out"); |
|||
} |
|||
// System.out.println(e);
|
|||
throw new IOException("IOException"); |
|||
} finally { |
|||
if (resp != null) { |
|||
try { |
|||
resp.close(); |
|||
} catch (IOException e) { |
|||
e.printStackTrace(); |
|||
} |
|||
} |
|||
if (httpPost != null) { |
|||
httpPost.releaseConnection(); |
|||
} |
|||
try { |
|||
client.close(); |
|||
} catch (IOException e) { |
|||
e.printStackTrace(); |
|||
} |
|||
} |
|||
return null; |
|||
} |
|||
|
|||
/** |
|||
* @param url |
|||
* @param jsonObj |
|||
* @return |
|||
*/ |
|||
public static String postUrlEncoded2(String url, JSONObject jsonObj, String cookies) { |
|||
try { |
|||
HttpClient httpClient = new DefaultHttpClient();//申明一个网络访问客户端
|
|||
HttpPost post = new HttpPost(url);//post方式
|
|||
// 1. 头部
|
|||
post.setHeader("DataEncoding", "UTF-8"); |
|||
post.setHeader("Cookie", cookies); |
|||
|
|||
// 2. 内容
|
|||
StringEntity entity = new StringEntity(jsonObj.toString(), "utf-8"); |
|||
entity.setContentEncoding("UTF-8"); |
|||
entity.setContentType("application/x-www-form-urlencoded"); |
|||
post.setEntity(entity);//带上参数
|
|||
|
|||
// 3. 执行
|
|||
HttpResponse httpResponse = httpClient.execute(post);//响应结果
|
|||
String result = UicodeBackslashU.unicodeToCn(EntityUtils.toString(httpResponse.getEntity(), "UTF-8")); //向服务器请求之后返回的数据结果
|
|||
|
|||
// 4. 处理返回
|
|||
if (httpResponse.getStatusLine().getStatusCode() == 200) {//如果是200 表示成功
|
|||
JSONObject obj = JSONObject.fromObject(result); |
|||
if (obj.getBoolean("success")) { |
|||
return "ok"; |
|||
} else { |
|||
String result_temp = UicodeBackslashU.unicodeToCn(obj.getString("error_desc")); |
|||
return result_temp; |
|||
} |
|||
} |
|||
|
|||
// 5. 返回
|
|||
return result; |
|||
} catch (Exception e) { |
|||
// Log.i("post_exception", e.toString());
|
|||
return "提交数据到爱牵挂服务器异常!"; |
|||
} |
|||
|
|||
} |
|||
|
|||
} |
|||
|
|||
class SSLClient extends DefaultHttpClient { |
|||
//用于进行Https请求的HttpClient
|
|||
public SSLClient() throws Exception { |
|||
super(); |
|||
SSLContext ctx = SSLContext.getInstance("TLS"); |
|||
X509TrustManager tm = new X509TrustManager() { |
|||
|
|||
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { |
|||
} |
|||
|
|||
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { |
|||
} |
|||
|
|||
public X509Certificate[] getAcceptedIssuers() { |
|||
return null; |
|||
} |
|||
}; |
|||
ctx.init(null, new TrustManager[]{tm}, null); |
|||
SSLSocketFactory ssf = new SSLSocketFactory(ctx, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); |
|||
ClientConnectionManager ccm = this.getConnectionManager(); |
|||
SchemeRegistry sr = ccm.getSchemeRegistry(); |
|||
sr.register(new Scheme("https", 443, ssf)); |
|||
} |
|||
} |
@ -0,0 +1,78 @@ |
|||
package com.yxt.supervise.monitor.biz.util; |
|||
|
|||
import java.util.regex.Pattern; |
|||
|
|||
public final class UicodeBackslashU { |
|||
// 单个字符的正则表达式
|
|||
private static final String singlePattern = "[0-9|a-f|A-F]"; |
|||
// 4个字符的正则表达式
|
|||
private static final String pattern = singlePattern + singlePattern + |
|||
singlePattern + singlePattern; |
|||
|
|||
|
|||
/** |
|||
* 把 \\u 开头的单字转成汉字,如 \\u6B65 -> 步 |
|||
* |
|||
* @param str |
|||
* @return |
|||
*/ |
|||
private static String ustartToCn(final String str) { |
|||
StringBuilder sb = new StringBuilder().append("0x") |
|||
.append(str.substring(2, 6)); |
|||
Integer codeInteger = Integer.decode(sb.toString()); |
|||
int code = codeInteger.intValue(); |
|||
char c = (char) code; |
|||
return String.valueOf(c); |
|||
} |
|||
|
|||
/** |
|||
* 字符串是否以Unicode字符开头。约定Unicode字符以 \\u开头。 |
|||
* |
|||
* @param str 字符串 |
|||
* @return true表示以Unicode字符开头. |
|||
*/ |
|||
private static boolean isStartWithUnicode(final String str) { |
|||
if (null == str || str.length() == 0) { |
|||
return false; |
|||
} |
|||
if (!str.startsWith("\\u")) { |
|||
return false; |
|||
} |
|||
// \u6B65
|
|||
if (str.length() < 6) { |
|||
return false; |
|||
} |
|||
String content = str.substring(2, 6); |
|||
|
|||
boolean isMatch = Pattern.matches(pattern, content); |
|||
return isMatch; |
|||
} |
|||
|
|||
/** |
|||
* 字符串中,所有以 \\u 开头的UNICODE字符串,全部替换成汉字 |
|||
* |
|||
* @param str |
|||
* @return |
|||
*/ |
|||
public static String unicodeToCn(final String str) { |
|||
// 用于构建新的字符串
|
|||
StringBuilder sb = new StringBuilder(); |
|||
// 从左向右扫描字符串。tmpStr是还没有被扫描的剩余字符串。
|
|||
// 下面有两个判断分支:
|
|||
// 1. 如果剩余字符串是Unicode字符开头,就把Unicode转换成汉字,加到StringBuilder中。然后跳过这个Unicode字符。
|
|||
// 2.反之, 如果剩余字符串不是Unicode字符开头,把普通字符加入StringBuilder,向右跳过1.
|
|||
int length = str.length(); |
|||
for (int i = 0; i < length; ) { |
|||
String tmpStr = str.substring(i); |
|||
if (isStartWithUnicode(tmpStr)) { // 分支1
|
|||
sb.append(ustartToCn(tmpStr)); |
|||
i += 6; |
|||
} else { // 分支2
|
|||
sb.append(str.substring(i, i + 1)); |
|||
i++; |
|||
} |
|||
} |
|||
return sb.toString(); |
|||
} |
|||
|
|||
} |
Loading…
Reference in new issue