今兒偶爾嘗試下,發現今日頭條資訊的資料是通過js請求回傳的json格式資料,
https://www.toutiao.com/api/pc/feed/?category=news_hot&utm_source=toutiao&widen=1&max_behot_time=0&max_behot_time_tmp=0&tadrequire=true&as=A1A59E854AA7874&cp=5E5AC7D827641E1&_signature=yC5W2AAgEBBvUdMRk.dUI8guF8AAJZ9R9DL8KANL4cGcw6L73vChOoUnbRLXCnSw7rxcy5egwT2p3fkpaKGMkwPRufmPZWSUWBpa21NhV9MN2gwLO1C5-6ITcexc-Yz1wWo是該鏈接,發現as 和 cp 引數值是變數,從 home_583c7a0.js 檔案 找到了function
!改成了java方法,但是好像不對,大俠們看看哪些還可以改進
function(t) {
var e = {};
e.getHoney = function() {
var t = Math.floor((new Date).getTime() / 1e3),
e = t.toString(16).toUpperCase(),
i = md5(t).toString().toUpperCase();
if (8 != e.length) return {
as: "479BB4B7254C150",
cp: "7E0AC8874BB0985"
};
for (var n = i.slice(0, 5), a = i.slice( - 5), s = "", o = 0; 5 > o; o++) s += n[o] + e[o];
for (var r = "",
c = 0; 5 > c; c++) r += e[c + 3] + a[c];
return {
as: "A1" + s + e.slice( - 3),
cp: e.slice(0, 3) + r + "E1"
}
},
t.ascp = e
} (window, document)
public static Map<String,String> getAsCp(){
String as = "479BB4B7254C150";
String cp = "7E0AC8874BB0985";
int t = (int) (new Date().getTime()/1000);
String e = Integer.toHexString(t).toUpperCase();
String i = DigestUtils.md5Hex(String.valueOf(t).getBytes()).toUpperCase();
if (e.length()==8) {
char[] n = i.substring(0,5).toCharArray();
char[] a = i.substring(i.length()-5).toCharArray();
StringBuilder s = new StringBuilder();
StringBuilder r = new StringBuilder();
for (int o = 0; o < 5; o++) {
s.append(n[o]).append(e.substring(o,o+1));
r.append(e.substring(o+3,o+4)).append(a[o]);
}
as = "A1" + s + e.substring(e.length()-3);
cp = e.substring(0,3) + r + "E1";
}
Map<String,String> map = new HashMap<>();
map.put("as",as);
map.put("cp",cp);
return map;
},, 另外最后一個 引數_signature的值還需要動態獲取嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/131963.html
標籤:Java SE
上一篇:求助Android studio大佬,前端編譯遇到問題求大佬解答
下一篇:springBoot打war包用 訪問介面必須加專案名稱才能訪問后臺介面 現在后天所有的介面都沒有加專案名稱如何解決?
