diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/controller/WpsController.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/controller/WpsController.java index 876162b..550dc01 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/controller/WpsController.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/controller/WpsController.java @@ -1,6 +1,7 @@ package com.chinaunicom.mall.ebtp.extend.wps.controller; +import com.alibaba.fastjson.JSON; import com.chinaunicom.mall.ebtp.cloud.security.starter.entity.SecurityEntity; import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; import com.chinaunicom.mall.ebtp.common.log.OperationLogDetail; @@ -9,6 +10,7 @@ import com.chinaunicom.mall.ebtp.common.log.enums.EbtpLogType; import com.chinaunicom.mall.ebtp.extend.feign.client.UnicomOAuthClient; import com.chinaunicom.mall.ebtp.extend.wps.entity.KingSoftFileSaveVo; import com.chinaunicom.mall.ebtp.extend.wps.service.WpsService; +import com.chinaunicom.mall.ebtp.extend.wps.util.HttpsUtils; import com.chinaunicom.mall.ebtp.extend.wps.vo.WpsClientInVo; import com.chinaunicom.mall.ebtp.extend.wps.vo.WpsResultVo; import feign.Body; @@ -17,6 +19,7 @@ import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringEscapeUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; @@ -25,6 +28,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.PrintWriter; +import java.util.Map; @Slf4j @RestController @@ -39,6 +43,8 @@ public class WpsController { @Resource private UnicomOAuthClient unicomOAuthClient; + @Value("${KingSoftWps.kswpsurl}") + private String kswpsurl; /** * 获得编辑或查看链接 * @@ -142,4 +148,18 @@ public class WpsController { log.info("SecurityEntity:"+s); return BaseResponse.success(s); } + /** + * token UrlPostString + * 编辑 permission=write + * 预览 permission=read + * @param + * @return + */ + @ApiOperation("token") + @PostMapping("/kingSoft/UrlPostString") + public BaseResponse UrlPostString(@RequestBody Object obj) { + String retJson = HttpsUtils.UrlPostString(kswpsurl, "utf-8", JSON.toJSONString(obj));//httpPost(kswpsurl,json); + log.info("retJson:"+retJson); + return BaseResponse.success(retJson); + } } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/util/HttpsUtils.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/util/HttpsUtils.java index 7eb3c99..040f209 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/util/HttpsUtils.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/util/HttpsUtils.java @@ -31,16 +31,18 @@ public class HttpsUtils { sc.init(null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom()); URL console = new URL(url); -// StringBuffer postData = new StringBuffer(); -// -// Iterator it = map.entrySet().iterator(); -// while (it.hasNext()) { -// Map.Entry pairs = (Map.Entry) it.next(); -// postData.append(pairs.getKey()).append("=") -// .append(URLEncoder.encode(pairs != null && pairs.getValue() != null ? pairs.getValue().toString() : "", charSet)).append("&"); -// } -// System.out.println("请求参数:" + postData); - System.out.println("请求参数:" + map); + StringBuffer postData = new StringBuffer(); + + Iterator it = map.entrySet().iterator(); + postData.append("{"); + while (it.hasNext()) { + Map.Entry pairs = (Map.Entry) it.next(); + postData.append("\""+pairs.getKey()+"\"").append("=") + .append(URLEncoder.encode(pairs != null && pairs.getValue() != null ? "\""+pairs.getValue().toString()+"\"" : "", charSet)); + } + postData.append("}"); + System.out.println("请求参数:" + postData); + //System.out.println("请求参数:" + map); HttpsURLConnection conn = null; if (proxy != null) { System.out.println("proxy信息=======:" + proxy); @@ -60,7 +62,7 @@ public class HttpsUtils { PrintWriter out = new PrintWriter(conn.getOutputStream());//获取URLConnection对象对应的输出流 - out.print(map);//发送请求参数即数据 + out.print(postData);//发送请求参数即数据 out.flush();//缓冲数据 @@ -148,6 +150,58 @@ public class HttpsUtils { } + public static String UrlPostString(String url,String charSet, String value){ + String str = ""; + try { + SSLContext sc = SSLContext.getInstance("SSL"); + sc.init(null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom()); + URL console = new URL(url); + + System.out.println("请求参数:" + value); + //System.out.println("请求参数:" + map); + HttpsURLConnection conn = (HttpsURLConnection) console.openConnection(); + + conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); + conn.setRequestProperty("Accept", "application/json"); + conn.setRequestProperty("Accept-Encoding", ""); + + conn.setSSLSocketFactory(sc.getSocketFactory()); + conn.setHostnameVerifier(new TrustAnyHostnameVerifier()); + + conn.setDoInput(true); + conn.setDoOutput(true); + + PrintWriter out = new PrintWriter(conn.getOutputStream());//获取URLConnection对象对应的输出流 + + out.print(value);//发送请求参数即数据 + + out.flush();//缓冲数据 + + //获取URLConnection对象对应的输入流 + InputStream is = conn.getInputStream(); + //构造一个字符流缓存 + BufferedReader br = new BufferedReader(new InputStreamReader(is)); + + String line = br.readLine(); + while (line != null) { + str = new String(line.getBytes(), "UTF-8");//解决中文乱码问题 + System.out.println(str); + line = br.readLine(); + } + System.out.println("返回参数:" + str); + //关闭流 + is.close(); + //断开连接,最好写上,disconnect是在底层tcp socket链接空闲时才切断。如果正在被其他线程使用就不切断。 + //固定多线程的话,如果不disconnect,链接会增多,直到收发不出信息。写上disconnect后正常一些。 + conn.disconnect(); + + }catch (Exception e) { + log.error("错误信息",e); + CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("https请求异常", true); + } + return str; + } + public static String to2HttpPost(String path, Map data) { String str = "";