金山WPS在线编辑

This commit is contained in:
zhangqinbin
2023-10-30 15:31:02 +08:00
parent e338400ee3
commit 24a0eb503f
2 changed files with 85 additions and 11 deletions

View File

@ -1,6 +1,7 @@
package com.chinaunicom.mall.ebtp.extend.wps.controller; 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.cloud.security.starter.entity.SecurityEntity;
import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse;
import com.chinaunicom.mall.ebtp.common.log.OperationLogDetail; 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.feign.client.UnicomOAuthClient;
import com.chinaunicom.mall.ebtp.extend.wps.entity.KingSoftFileSaveVo; 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.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.WpsClientInVo;
import com.chinaunicom.mall.ebtp.extend.wps.vo.WpsResultVo; import com.chinaunicom.mall.ebtp.extend.wps.vo.WpsResultVo;
import feign.Body; import feign.Body;
@ -17,6 +19,7 @@ import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringEscapeUtils; import org.apache.commons.lang3.StringEscapeUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
@ -25,6 +28,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.File; import java.io.File;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.util.Map;
@Slf4j @Slf4j
@RestController @RestController
@ -39,6 +43,8 @@ public class WpsController {
@Resource @Resource
private UnicomOAuthClient unicomOAuthClient; private UnicomOAuthClient unicomOAuthClient;
@Value("${KingSoftWps.kswpsurl}")
private String kswpsurl;
/** /**
* 获得编辑或查看链接 * 获得编辑或查看链接
* *
@ -142,4 +148,18 @@ public class WpsController {
log.info("SecurityEntity:"+s); log.info("SecurityEntity:"+s);
return BaseResponse.success(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);
}
} }

View File

@ -31,16 +31,18 @@ public class HttpsUtils {
sc.init(null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom()); sc.init(null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom());
URL console = new URL(url); URL console = new URL(url);
// StringBuffer postData = new StringBuffer(); StringBuffer postData = new StringBuffer();
//
// Iterator it = map.entrySet().iterator(); Iterator it = map.entrySet().iterator();
// while (it.hasNext()) { postData.append("{");
// Map.Entry pairs = (Map.Entry) it.next(); while (it.hasNext()) {
// postData.append(pairs.getKey()).append("=") Map.Entry pairs = (Map.Entry) it.next();
// .append(URLEncoder.encode(pairs != null && pairs.getValue() != null ? pairs.getValue().toString() : "", charSet)).append("&"); postData.append("\""+pairs.getKey()+"\"").append("=")
// } .append(URLEncoder.encode(pairs != null && pairs.getValue() != null ? "\""+pairs.getValue().toString()+"\"" : "", charSet));
// System.out.println("请求参数:" + postData); }
System.out.println("请求参数:" + map); postData.append("}");
System.out.println("请求参数:" + postData);
//System.out.println("请求参数:" + map);
HttpsURLConnection conn = null; HttpsURLConnection conn = null;
if (proxy != null) { if (proxy != null) {
System.out.println("proxy信息=======" + proxy); System.out.println("proxy信息=======" + proxy);
@ -60,7 +62,7 @@ public class HttpsUtils {
PrintWriter out = new PrintWriter(conn.getOutputStream());//获取URLConnection对象对应的输出流 PrintWriter out = new PrintWriter(conn.getOutputStream());//获取URLConnection对象对应的输出流
out.print(map);//发送请求参数即数据 out.print(postData);//发送请求参数即数据
out.flush();//缓冲数据 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<String,String> data) { public static String to2HttpPost(String path, Map<String,String> data) {
String str = ""; String str = "";