|
@@ -0,0 +1,123 @@
|
|
|
|
|
+package com.husj.openai.service;
|
|
|
|
|
+
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
+import okhttp3.*;
|
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
|
+
|
|
|
|
|
+import java.io.IOException;
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
|
+import java.util.HashMap;
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
+import java.util.Map;
|
|
|
|
|
+
|
|
|
|
|
+@Service
|
|
|
|
|
+public class PmailService {
|
|
|
|
|
+ public String getCookies() {
|
|
|
|
|
+ OkHttpClient client = new OkHttpClient.Builder()
|
|
|
|
|
+ .followRedirects(true)
|
|
|
|
|
+ .followSslRedirects(true)
|
|
|
|
|
+ .build();
|
|
|
|
|
+
|
|
|
|
|
+ // 构建JSON请求体
|
|
|
|
|
+ String json = "{\"account\":\"husj\",\"password\":\"15629747218hsjH\"}";
|
|
|
|
|
+ RequestBody body = RequestBody.create(json, MediaType.parse("application/json; charset=utf-8"));
|
|
|
|
|
+
|
|
|
|
|
+ Request request = new Request.Builder()
|
|
|
|
|
+ .url("https://pmail.030208.xyz/api/login")
|
|
|
|
|
+ .addHeader("Accept", "application/json, text/plain, */*")
|
|
|
|
|
+ .addHeader("Accept-Language", "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7")
|
|
|
|
|
+ .addHeader("Cache-Control", "no-cache")
|
|
|
|
|
+ .addHeader("Content-Type", "application/json;charset=UTF-8;")
|
|
|
|
|
+ .addHeader("Lang", "zhCn")
|
|
|
|
|
+ .addHeader("Origin", "https://pmail.030208.xyz")
|
|
|
|
|
+ .addHeader("Pragma", "no-cache")
|
|
|
|
|
+ .addHeader("Priority", "u=1, i")
|
|
|
|
|
+ .addHeader("Referer", "https://pmail.030208.xyz/")
|
|
|
|
|
+ .addHeader("Sec-Ch-Ua", "\"Chromium\";v=\"146\", \"Not-A.Brand\";v=\"24\", \"Google")
|
|
|
|
|
+ .addHeader("Sec-Ch-Ua-Mobile", "?0")
|
|
|
|
|
+ .addHeader("Sec-Ch-Ua-Platform", "\"Windows\"")
|
|
|
|
|
+ .addHeader("Sec-Fetch-Dest", "empty")
|
|
|
|
|
+ .addHeader("Sec-Fetch-Mode", "cors")
|
|
|
|
|
+ .addHeader("Sec-Fetch-Site", "same-origin")
|
|
|
|
|
+ .addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36")
|
|
|
|
|
+ .post(body) // 改为POST方法
|
|
|
|
|
+ .build();
|
|
|
|
|
+
|
|
|
|
|
+ try (Response response = client.newCall(request).execute()) {
|
|
|
|
|
+ System.out.println(response.code() + " " + response.message());
|
|
|
|
|
+ List<String> setCookies = response.headers("Set-Cookie");
|
|
|
|
|
+ String cookies = setCookies.get(0);
|
|
|
|
|
+ return cookies;
|
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
|
+ throw new RuntimeException(e);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public List<Map<String, Object>> getEmail() {
|
|
|
|
|
+ try {
|
|
|
|
|
+ //确保能收到邮件
|
|
|
|
|
+ Thread.sleep(3*1000);
|
|
|
|
|
+ } catch (InterruptedException e) {
|
|
|
|
|
+ throw new RuntimeException(e);
|
|
|
|
|
+ }
|
|
|
|
|
+ ArrayList<Map<String, Object>> list = new ArrayList<Map<String, Object>> ();
|
|
|
|
|
+ OkHttpClient client = new OkHttpClient.Builder()
|
|
|
|
|
+ .followRedirects(true)
|
|
|
|
|
+ .followSslRedirects(true)
|
|
|
|
|
+ .build();
|
|
|
|
|
+
|
|
|
|
|
+ // 构建JSON请求体
|
|
|
|
|
+ String jsonBody = "{\"tag\":{\"type\":0,\"status\":-1,\"group_id\":0},\"page_size\":10}";
|
|
|
|
|
+ RequestBody body = RequestBody.create(jsonBody, MediaType.parse("application/json; charset=utf-8"));
|
|
|
|
|
+
|
|
|
|
|
+ // 从 -b 参数获取的 Cookie
|
|
|
|
|
+
|
|
|
|
|
+ Request request = new Request.Builder()
|
|
|
|
|
+ .url("https://pmail.030208.xyz/api/email/list")
|
|
|
|
|
+ .addHeader("Cookie", "session=beG8AdZzfjgHWPwR0mrgoWGvjMU30zwPgvfNgT31sSk") // 添加 Cookie 头
|
|
|
|
|
+ .addHeader("Accept", "application/json, text/plain, */*")
|
|
|
|
|
+ .addHeader("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6")
|
|
|
|
|
+ .addHeader("Cache-Control", "no-cache")
|
|
|
|
|
+ .addHeader("Content-Type", "application/json;charset=UTF-8;")
|
|
|
|
|
+ .addHeader("Lang", "zhCn")
|
|
|
|
|
+ .addHeader("Origin", "https://pmail.030208.xyz")
|
|
|
|
|
+ .addHeader("Pragma", "no-cache")
|
|
|
|
|
+ .addHeader("Priority", "u=1, i")
|
|
|
|
|
+ .addHeader("Referer", "https://pmail.030208.xyz/")
|
|
|
|
|
+ .addHeader("Sec-Ch-Ua", "\"Chromium\";v=\"146\", \"Not-A.Brand\";v=\"24\", \"Microsoft")
|
|
|
|
|
+ .addHeader("Sec-Ch-Ua-Mobile", "?0")
|
|
|
|
|
+ .addHeader("Sec-Ch-Ua-Platform", "\"Windows\"")
|
|
|
|
|
+ .addHeader("Sec-Fetch-Dest", "empty")
|
|
|
|
|
+ .addHeader("Sec-Fetch-Mode", "cors")
|
|
|
|
|
+ .addHeader("Sec-Fetch-Site", "same-origin")
|
|
|
|
|
+ .addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36 Edg/146.0.0.0")
|
|
|
|
|
+ .post(body)
|
|
|
|
|
+ .build();
|
|
|
|
|
+
|
|
|
|
|
+ try (Response response = client.newCall(request).execute()) {
|
|
|
|
|
+
|
|
|
|
|
+ // 打印响应体
|
|
|
|
|
+ if (response.body() != null) {
|
|
|
|
|
+ String html = response.body().string();
|
|
|
|
|
+// System.out.println(html);
|
|
|
|
|
+ JSONObject jsonObject = JSON.parseObject(html);
|
|
|
|
|
+ JSONArray jsonList = jsonObject.getJSONObject("data").getJSONArray("list");
|
|
|
|
|
+ for (int i = 0; i < 3; i++) {
|
|
|
|
|
+ HashMap<String, Object> map = new HashMap<>();
|
|
|
|
|
+ JSONObject json = jsonList.getJSONObject(i);
|
|
|
|
|
+ map.put("subject", json.getString("title"));
|
|
|
|
|
+ map.put("txt", json.getString("title"));
|
|
|
|
|
+ JSONObject to = (JSONObject) json.getJSONArray("to").get(0);
|
|
|
|
|
+ map.put("from", to.getString("EmailAddress"));
|
|
|
|
|
+ list.add(map);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+ return list;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|