Yutousama 9b7633e8a9 完善机器人功能
使用缓存来存储直播信息,防止频繁请求导致412问题
2021-04-08 22:03:47 +08:00

64 lines
2.5 KiB
Java

package com.yutou.bilibili.Tools;
import com.alibaba.fastjson.JSONObject;
import com.yutou.bilibili.BiliBili.LiveUtils;
import javax.xml.bind.DatatypeConverter;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.HttpCookie;
import java.net.HttpURLConnection;
import java.nio.charset.StandardCharsets;
import java.util.List;
public class TestMain {
public static void main(String[] args) {
new TestMain();
}
public TestMain() {
try {
JSONObject cookie = JSONObject.parseObject(LiveUtils.getFile("cookies.json"));
JSONObject userHear = new JSONObject();
userHear.put("csrf_token",cookie.getString("bili_jct"));
userHear.put("csrf",cookie.getString("bili_jct"));
userHear.put("visit_id","");
HttpURLConnection connection=LiveUtils.getBiliHttpPost("https://api.live.bilibili.com/User/userOnlineHeart",LiveUtils.getCookie());
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
OutputStream connectionOutputStream = null;
connectionOutputStream = connection.getOutputStream();
connectionOutputStream.write(HttpTools.toUrlParams(userHear).getBytes(StandardCharsets.UTF_8));
connectionOutputStream.flush();
JSONObject hearBeat;
hearBeat=LiveUtils.http_post("https://api.live.bilibili.com/User/userOnlineHeart", HttpTools.toUrlParams(userHear));
/* BufferedInputStream stream = new BufferedInputStream(connection.getInputStream());
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[] bytes = new byte[1024];
int len = 0, size;
while ((len = stream.read(bytes)) != -1) {
outputStream.write(bytes, 0, len);
outputStream.flush();
}
String str = new String(outputStream.toByteArray(), StandardCharsets.UTF_8);*/
com.yutou.bilibili.Tools.Log.i("["+AppTools.getToDayNowTimeToString()+"]"+hearBeat);
} catch (Exception e) {
com.yutou.bilibili.Tools.Log.e(e);
}
}
public static int byteArrayToInt(byte[] bytes) {
int value=0;
for(int i = 0; i < 4; i++) {
int shift= (3-i) * 8;
value +=(bytes[i] & 0xFF) << shift;
}
return value;
}
}