|
@@ -1,16 +1,16 @@
|
|
package com.mingxue.spider.utils;
|
|
package com.mingxue.spider.utils;
|
|
|
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
|
-import com.mingxue.spider.helper.StringUtils;
|
|
|
|
-import jdk.nashorn.api.scripting.NashornScriptEngine;
|
|
|
|
-import jdk.nashorn.api.scripting.NashornScriptEngineFactory;
|
|
|
|
-
|
|
|
|
import java.io.FileReader;
|
|
import java.io.FileReader;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
|
+
|
|
|
|
+import jdk.nashorn.api.scripting.NashornScriptEngine;
|
|
|
|
+import jdk.nashorn.api.scripting.NashornScriptEngineFactory;
|
|
|
|
+
|
|
public class UsignUtils {
|
|
public class UsignUtils {
|
|
- public static String getUsign(String jsParam,String jsonParam){
|
|
|
|
|
|
+ public static String getUsign(String jsParam, String jsonParam) {
|
|
String[] options = new String[] {"--language=es6"};
|
|
String[] options = new String[] {"--language=es6"};
|
|
NashornScriptEngineFactory factory = new NashornScriptEngineFactory();
|
|
NashornScriptEngineFactory factory = new NashornScriptEngineFactory();
|
|
|
|
|
|
@@ -18,10 +18,10 @@ public class UsignUtils {
|
|
NashornScriptEngine engine = getEngine();
|
|
NashornScriptEngine engine = getEngine();
|
|
JSONObject jsonObject = JSONObject.parseObject(jsonParam);
|
|
JSONObject jsonObject = JSONObject.parseObject(jsonParam);
|
|
|
|
|
|
- String aaaa= "u_sign('"+jsParam+"',"+jsonObject+")";
|
|
|
|
|
|
+ String aaaa = "u_sign('" + jsParam + "'," + jsonObject + ")";
|
|
|
|
|
|
- Object o = engine.eval("u_sign('"+jsParam+"',"+jsonParam+")");
|
|
|
|
-// System.out.println("value : "+o);
|
|
|
|
|
|
+ Object o = engine.eval("u_sign('" + jsParam + "'," + jsonParam + ")");
|
|
|
|
+ // System.out.println("value : "+o);
|
|
return o.toString();
|
|
return o.toString();
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
@@ -29,15 +29,15 @@ public class UsignUtils {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- public static String getUsign(String jsParam){
|
|
|
|
|
|
+ public static String getUsign(String jsParam) {
|
|
String[] options = new String[] {"--language=es6"};
|
|
String[] options = new String[] {"--language=es6"};
|
|
NashornScriptEngineFactory factory = new NashornScriptEngineFactory();
|
|
NashornScriptEngineFactory factory = new NashornScriptEngineFactory();
|
|
|
|
|
|
try {
|
|
try {
|
|
NashornScriptEngine engine = getEngine();
|
|
NashornScriptEngine engine = getEngine();
|
|
|
|
|
|
- Object o = engine.eval("u_sign('"+jsParam+"')");
|
|
|
|
-// System.out.println("value : "+o);
|
|
|
|
|
|
+ Object o = engine.eval("u_sign('" + jsParam + "')");
|
|
|
|
+ // System.out.println("value : "+o);
|
|
return o.toString();
|
|
return o.toString();
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
@@ -45,23 +45,23 @@ public class UsignUtils {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- public static NashornScriptEngine getEngine(){
|
|
|
|
|
|
+ public static NashornScriptEngine getEngine() {
|
|
/* 1.首先引入js引擎 */
|
|
/* 1.首先引入js引擎 */
|
|
-// ScriptEngineManager manager = new ScriptEngineManager();
|
|
|
|
- //引擎名称传入JavaScript、js、javascript、nashorn、Nashorn 均可等价
|
|
|
|
-// ScriptEngine engine = manager.getEngineByName("nashorn");
|
|
|
|
|
|
+ // ScriptEngineManager manager = new ScriptEngineManager();
|
|
|
|
+ // 引擎名称传入JavaScript、js、javascript、nashorn、Nashorn 均可等价
|
|
|
|
+ // ScriptEngine engine = manager.getEngineByName("nashorn");
|
|
|
|
|
|
String[] options = new String[] {"--language=es6"};
|
|
String[] options = new String[] {"--language=es6"};
|
|
NashornScriptEngineFactory factory = new NashornScriptEngineFactory();
|
|
NashornScriptEngineFactory factory = new NashornScriptEngineFactory();
|
|
- NashornScriptEngine engine = (NashornScriptEngine) factory.getScriptEngine(options);
|
|
|
|
|
|
+ NashornScriptEngine engine = (NashornScriptEngine)factory.getScriptEngine(options);
|
|
|
|
|
|
try {
|
|
try {
|
|
- /* 2.然后读取js文件 */
|
|
|
|
|
|
+ /* 2.然后读取js文件 */
|
|
String path = Thread.currentThread().getContextClassLoader().getResource("").getPath(); // 获取targe路径
|
|
String path = Thread.currentThread().getContextClassLoader().getResource("").getPath(); // 获取targe路径
|
|
|
|
|
|
-// String requestPath = "/youzy.dms.basiclib.api.career.job.hits.inc";
|
|
|
|
-// String jobCode="02030502";
|
|
|
|
-// params =requestPath+"?jobCode="+jobCode;
|
|
|
|
|
|
+ // String requestPath = "/youzy.dms.basiclib.api.career.job.hits.inc";
|
|
|
|
+ // String jobCode="02030502";
|
|
|
|
+ // params =requestPath+"?jobCode="+jobCode;
|
|
|
|
|
|
engine.eval(new FileReader(path + "js/usign.js"));
|
|
engine.eval(new FileReader(path + "js/usign.js"));
|
|
|
|
|
|
@@ -72,46 +72,49 @@ public class UsignUtils {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- public static String getRequestPathAndParam(String requestPath,Map<String,Object> paramMap){
|
|
|
|
- StringBuilder parameter= new StringBuilder();
|
|
|
|
- int i=0;
|
|
|
|
- for(Map.Entry<String,Object> entry:paramMap.entrySet()){
|
|
|
|
- if(i==0){
|
|
|
|
- parameter.append("?");
|
|
|
|
- }else {
|
|
|
|
- parameter.append("&");
|
|
|
|
|
|
+ public static String getRequestPathAndParam(String api, Map<String, Object> params) {
|
|
|
|
+ if (null != params) {
|
|
|
|
+ StringBuilder parameter = new StringBuilder();
|
|
|
|
+ int i = 0;
|
|
|
|
+ for (Map.Entry<String, Object> entry : params.entrySet()) {
|
|
|
|
+ if (i == 0) {
|
|
|
|
+ parameter.append("?");
|
|
|
|
+ } else {
|
|
|
|
+ parameter.append("&");
|
|
|
|
+ }
|
|
|
|
+ parameter.append(entry.getKey()).append("=").append(entry.getValue());
|
|
|
|
+ i++;
|
|
}
|
|
}
|
|
- parameter.append(entry.getKey()).append("=").append(entry.getValue());
|
|
|
|
- i++;
|
|
|
|
|
|
+ return api + parameter.toString();
|
|
|
|
+ } else {
|
|
|
|
+ return api;
|
|
}
|
|
}
|
|
- String jsParam = requestPath+parameter.toString();
|
|
|
|
- return jsParam;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
public static void main(String[] args) {
|
|
public static void main(String[] args) {
|
|
String requestPath = "/youzy.dms.basiclib.api.career.job.hits.inc";
|
|
String requestPath = "/youzy.dms.basiclib.api.career.job.hits.inc";
|
|
String jobCode = "02030502";
|
|
String jobCode = "02030502";
|
|
- Map<String,Object> paramMap =new HashMap<>();
|
|
|
|
- paramMap.put("jobCode",jobCode);
|
|
|
|
- System.out.println(getUsign(getRequestPathAndParam(requestPath,paramMap)));
|
|
|
|
|
|
+ Map<String, Object> paramMap = new HashMap<>();
|
|
|
|
+ paramMap.put("jobCode", jobCode);
|
|
|
|
+ System.out.println(getUsign(getRequestPathAndParam(requestPath, paramMap)));
|
|
|
|
|
|
requestPath = "/youzy.dms.basiclib.api.major.tree.query";
|
|
requestPath = "/youzy.dms.basiclib.api.major.tree.query";
|
|
String eduLevel = "ben";
|
|
String eduLevel = "ben";
|
|
- paramMap =new HashMap<>();
|
|
|
|
- paramMap.put("eduLevel",eduLevel);
|
|
|
|
- System.out.println(getUsign(getRequestPathAndParam(requestPath,paramMap)));
|
|
|
|
|
|
+ paramMap = new HashMap<>();
|
|
|
|
+ paramMap.put("eduLevel", eduLevel);
|
|
|
|
+ System.out.println(getUsign(getRequestPathAndParam(requestPath, paramMap)));
|
|
|
|
|
|
requestPath = "/youzy.dms.basiclib.api.major.tree.query";
|
|
requestPath = "/youzy.dms.basiclib.api.major.tree.query";
|
|
- String jsonParam="{\"count\":5,\"rankType\":1,\"eduLevel\":\"ben\"}";
|
|
|
|
- paramMap =new HashMap<>();
|
|
|
|
- System.out.println(getUsign(getRequestPathAndParam(requestPath,paramMap),jsonParam));
|
|
|
|
|
|
+ String jsonParam = "{\"count\":5,\"rankType\":1,\"eduLevel\":\"ben\"}";
|
|
|
|
+ paramMap = new HashMap<>();
|
|
|
|
+ System.out.println(getUsign(getRequestPathAndParam(requestPath, paramMap), jsonParam));
|
|
|
|
|
|
- //u-sign: f6a8052b16fbe01064e4c4e86441a642
|
|
|
|
|
|
+ // u-sign: f6a8052b16fbe01064e4c4e86441a642
|
|
requestPath = "/youzy.dms.basiclib.api.college.query";
|
|
requestPath = "/youzy.dms.basiclib.api.college.query";
|
|
- jsonParam="{\"keyword\":\"\",\"provinceNames\":[],\"natureTypes\":[],\"eduLevel\":\"\",\"categories\":[],\"features\":[],\"pageIndex\":%s,\"pageSize\":20,\"sort\":11}";
|
|
|
|
- jsonParam = String.format(jsonParam,2);
|
|
|
|
- paramMap =new HashMap<>();
|
|
|
|
- System.out.println(getUsign(getRequestPathAndParam(requestPath,paramMap),jsonParam));
|
|
|
|
|
|
+ jsonParam =
|
|
|
|
+ "{\"keyword\":\"\",\"provinceNames\":[],\"natureTypes\":[],\"eduLevel\":\"\",\"categories\":[],\"features\":[],\"pageIndex\":%s,\"pageSize\":20,\"sort\":11}";
|
|
|
|
+ jsonParam = String.format(jsonParam, 2);
|
|
|
|
+ paramMap = new HashMap<>();
|
|
|
|
+ System.out.println(getUsign(getRequestPathAndParam(requestPath, paramMap), jsonParam));
|
|
}
|
|
}
|
|
}
|
|
}
|