|
@@ -18,8 +18,21 @@
|
|
|
* 3、刷票。很多投票的网页一个IP只允许投票一次,如果我们借助大量代理IP去投票,结果可想而知....
|
|
* 3、刷票。很多投票的网页一个IP只允许投票一次,如果我们借助大量代理IP去投票,结果可想而知....
|
|
|
*/
|
|
*/
|
|
|
|
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
+import org.jsoup.Connection;
|
|
|
|
|
+import top.lvzhiqiang.util.CheckSign4Bitget;
|
|
|
|
|
+import top.lvzhiqiang.util.JsoupUtil;
|
|
|
|
|
+
|
|
|
|
|
+import java.io.UnsupportedEncodingException;
|
|
|
|
|
+import java.net.InetSocketAddress;
|
|
|
|
|
+import java.net.Proxy;
|
|
|
|
|
+import java.security.InvalidKeyException;
|
|
|
import java.time.Duration;
|
|
import java.time.Duration;
|
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
|
|
|
+import java.util.HashMap;
|
|
|
|
|
+import java.util.LinkedHashMap;
|
|
|
|
|
+import java.util.Map;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 爬取网上免费代理IP,搭建自己的Ip池
|
|
* 爬取网上免费代理IP,搭建自己的Ip池
|
|
@@ -27,7 +40,60 @@ import java.time.LocalDateTime;
|
|
|
public class Test4 {
|
|
public class Test4 {
|
|
|
public static void main(String[] args) {
|
|
public static void main(String[] args) {
|
|
|
LocalDateTime cTime = LocalDateTime.now().minusSeconds(3);
|
|
LocalDateTime cTime = LocalDateTime.now().minusSeconds(3);
|
|
|
- LocalDateTime endTime = LocalDateTime.now();
|
|
|
|
|
|
|
+ LocalDateTime endTime = LocalDateTime.now();
|
|
|
System.out.println(Duration.between(cTime, endTime).getSeconds());
|
|
System.out.println(Duration.between(cTime, endTime).getSeconds());
|
|
|
|
|
+
|
|
|
|
|
+ Map<String, String> paramMap = new LinkedHashMap<>();
|
|
|
|
|
+ paramMap.put("traderId","b1b5467f8bb73f53ac97");
|
|
|
|
|
+ paramMap.put("pageNo","1");
|
|
|
|
|
+ paramMap.put("pageSize","10");
|
|
|
|
|
+
|
|
|
|
|
+ String signQueryString = paramMap.entrySet().stream().map(e -> e.getKey() + "=" + e.getValue()).collect(Collectors.joining("&"));
|
|
|
|
|
+ String url = "/api/mix/v1/trace/report/order/currentList";
|
|
|
|
|
+
|
|
|
|
|
+ String s = JSONObject.toJSONString(paramMap);
|
|
|
|
|
+ JSONObject response = requestApi4Common(url, null, s, JsoupUtil.HTTP_POST, paramMap);
|
|
|
|
|
+ System.out.println(response);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private static JSONObject requestApi4Common(String requestPath, String signQueryString, String signBody, String httpMethod, Map<String, String> paramMap) {
|
|
|
|
|
+ String timestamp = String.valueOf(System.currentTimeMillis());
|
|
|
|
|
+ Map<String, String> basicHeaderMap = new HashMap<>();
|
|
|
|
|
+ basicHeaderMap.put("ACCESS-KEY", "bg_433d37306df0e8901c6d107c6d9e9111");
|
|
|
|
|
+ // 使用base64编码签名(请参阅签名消息)。
|
|
|
|
|
+ basicHeaderMap.put("ACCESS-SIGN", "");
|
|
|
|
|
+ // 您请求的时间戳。
|
|
|
|
|
+ basicHeaderMap.put("ACCESS-TIMESTAMP", "");
|
|
|
|
|
+ // 您在创建API KEY时设置的口令。
|
|
|
|
|
+ basicHeaderMap.put("ACCESS-PASSPHRASE", "7f934f62f2701bee932204580d115228");
|
|
|
|
|
+ // 统一设置为application/json。
|
|
|
|
|
+ basicHeaderMap.put("Content-Type", "application/json");
|
|
|
|
|
+ // 支持多语言, 如:中文(zh-CN),英语(en-US)
|
|
|
|
|
+ basicHeaderMap.put("locale", "zh-CN");
|
|
|
|
|
+
|
|
|
|
|
+ Map<String, String> headerMap = new HashMap<>();
|
|
|
|
|
+ headerMap.putAll(basicHeaderMap);
|
|
|
|
|
+ try {
|
|
|
|
|
+ String accessSign = CheckSign4Bitget.generate(timestamp, httpMethod, requestPath, signQueryString, signBody, "1fdd0fc2976bea80189ba13710e12825ca3ef6c5e25a0d76fd03f8f6cd4a61d9");
|
|
|
|
|
+ headerMap.put("ACCESS-TIMESTAMP", timestamp);
|
|
|
|
|
+ headerMap.put("ACCESS-SIGN", accessSign);
|
|
|
|
|
+ } catch (CloneNotSupportedException e) {
|
|
|
|
|
+ throw new RuntimeException(e);
|
|
|
|
|
+ } catch (InvalidKeyException e) {
|
|
|
|
|
+ throw new RuntimeException(e);
|
|
|
|
|
+ } catch (UnsupportedEncodingException e) {
|
|
|
|
|
+ throw new RuntimeException(e);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ try {
|
|
|
|
|
+ Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 1080));
|
|
|
|
|
+ String mainUrl = "https://api.bitget.com";
|
|
|
|
|
+ String requestUrl = mainUrl + requestPath;
|
|
|
|
|
+ Connection.Response response = JsoupUtil.requestBodyJSON(requestUrl, httpMethod, proxy,null, headerMap, paramMap);
|
|
|
|
|
+
|
|
|
|
|
+ return JSONObject.parseObject(response.body());
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ throw new RuntimeException(e);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|