_TheStrongestSnail/TheStrongestSnail/Assets/Scripts/Login/WebConnact.cs
2024-11-13 21:52:56 +08:00

1272 lines
40 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*using System;
using System.Collections;
using System.Collections.Generic;
using System.Xml.Linq;
using UnityEngine;
using UnityEngine.Networking;
using System.Threading.Tasks;
using Newtonsoft.Json;
public class WebConnact : MonoBehaviour
{
private string token; // 保存 token 以便在整个类中使用
void Start()
{
// 由于除登录注册外的其他方法都需要登录后返回的token
// 因此登录不在此发送请求(同时)
// 采用监听和事件回调的方法只有监听到登录和token返回时才运行其他方法
LoginAndGetToken.OnTokenReceived += HandleTokenReceived;
// 订阅事件,当 gameEscapeId 更新时调用 HandleGameEscapeIdUpdated
selectGameEscape512.OnGameEscapeIdUpdated += HandleGameEscapeIdUpdated;
}
void HandleTokenReceived(string receivedToken)
{
// 保存 token
token = receivedToken; // 将接收到的 token 保存在类变量中
//Debug.Log("HandleTokenReceived监听:" + token);
// 首次调用时,暂时没有 escapeId 可以传递,因此传 -1
Loding(token, -1);
}
void HandleGameEscapeIdUpdated(int newGameEscapeId)
{
Debug.Log("GameEscapeId 已更新为: " + newGameEscapeId);
// 在这里调用 Loding 方法并传递最新的 escapeId
Loding(token, newGameEscapeId);
}
// 传入 token 和更新后的 escapeId
public async void Loding(string token, int newGameEscapeId)
{
// 用来给请求头赋值
string Authorization = token;
Debug.Log("Loding(Authorization)请求头赋值: " + Authorization);
// 如果 newGameEscapeId 不是初始值(-1则使用它
int escapeId = newGameEscapeId != -1 ? newGameEscapeId : 0;
Debug.Log("使用最新的 escapeId: " + escapeId);
// 你剩下的网络请求逻辑
//例如:在需要用到 escapeId 的地方直接使用它
//1.3,完善用户信息//已通过
User_InformationHead user = new User_InformationHead();
Dictionary<string, string> head13 = new Dictionary<string, string>
{
{ "Authorization", Authorization }, // 设置授权头
};
string UserNewInfoBody = @"
{
""nickName"": ""wulongxiao"",
""headImg"": ""https://fantasymonster-app.oss-cn-hangzhou.aliyuncs.com/upload/imgs/127e4e42d7c0405aab53359c1b278a9c.png"",
""gender"": 1,
""birthday"": ""2023-12-12 12:12:12""
}";
//打印 JSON 请求体,用于调试
Debug.Log("JSON Request Data: " + UserNewInfoBody);
string response13 = await web.SendRequest("http://121.40.42.41:8080/snail/user/update", "POST", UserNewInfoBody, head13);
Debug.Log("1.3完善用户信息" + response13);
//1.4查询用户详情(新增)
Dictionary<string, string> head14 = new Dictionary<string, string>
{
{ "Authorization", Authorization }, // 设置授权头
};
string response14 = await web.SendRequest("http://121.40.42.41:8080/snail/user/queryUserInfo", "POST", "{}", head14);
Debug.Log("1.4查询用户详情" + response14);
//2.1商城列表//已通过
Mall_List mall_virtual = new Mall_List();
mall_virtual.productType = 0;
mall_virtual.pageNo = 1;
mall_virtual.pageSize = 20;
string mall_virtualponse = await web.SendRequest("http://121.40.42.41:8080/snail/product/page", "POST", JsonUtility.ToJson(mall_virtual));
Debug.Log("2.1商城列表:" + mall_virtualponse);
//2.1,商城列表//已通过
Mall_List mall = new Mall_List();
mall.productType = 1;
//mall.pageNo = 1;
//mall.pageSize = 20;//这两个属性是默认值可以省略不写默认是1跟20
string response21 = await web.SendRequest("http://121.40.42.41:8080/snail/product/page", "POST", JsonUtility.ToJson(mall));
Debug.Log("2.1商城列表:" + response21);
//2.2,获取商城商品详情//已通过
Dictionary<string, string> head22 = new Dictionary<string, string>
{
{ "Authorization", Authorization }, // 设置授权头
};
Product_Details product = new Product_Details();
product.productId = 1;
string response22 = await web.SendRequest("http://121.40.42.41:8080/snail/product/info", "POST", JsonUtility.ToJson(product), head22);
Debug.Log("JSON Request Data: " + JsonUtility.ToJson(product));
Debug.Log("2.2,获取商城商品详情" + response22);
//2.3,商品购买(无支付)//已通过
Mall_buy mall_Buy = new Mall_buy();
Dictionary<string, string> head23 = new Dictionary<string, string>
{
{ "Authorization", Authorization }, // 设置授权头
};
mall_Buy.userId = 106;
mall_Buy.productId = 1;
string response23 = await web.SendRequest("http://121.40.42.41:8080/snail/product/buy", "POST", JsonUtility.ToJson(mall_Buy), head23);
Debug.Log("2.3,商品购买(无支付)" + response23);
//3.1,查询公告分页://已通过
Query_Announcement query_Announcement = new Query_Announcement();
query_Announcement.userId = 106;
query_Announcement.pageNo = 1;
query_Announcement.pageSize = 20;
string response31 = await web.SendRequest("http://121.40.42.41:8080/snail/notice/page", "POST", JsonUtility.ToJson(query_Announcement));
Debug.Log("3.1,查询公告分页:" + response31);
//3.2,查询公告详情://已通过
int AnnouncementId = 1;
string response32 = await web.SendRequest($"http://121.40.42.41:8080/snail/notice/info?noticeId={AnnouncementId}", "GET");
Debug.Log("3.2,查询公告详情:" + response32);
//=================================================================================================================================
//4.1查询靓号池分页//已通过
Dictionary<string, string> head41 = new Dictionary<string, string>
{
{ "Authorization", Authorization }, // 设置授权头
};
int orderByBeansCoin = 1;
string response41 = await web.SendRequest("http://121.40.42.41:8080/snail/cutePool/page", "POST", JsonUtility.ToJson(orderByBeansCoin), head41);
Debug.Log("查询靓号池分页" + response41);
//=================================================================================================================================
//4.2购买欢乐豆//已通过
Dictionary<string, string> head42 = new Dictionary<string, string>
{
{ "Authorization", Authorization }, // 设置授权头
};
string buyCutePool = @"
{
""userId"": 106,
""cutePoolId"": 2
}";
//打印 JSON 请求体,用于调试
Debug.Log("JSON Request Data: " + buyCutePool);
string response42 = await web.SendRequest("http://121.40.42.41:8080/snail/cutePool/buy", "POST", buyCutePool, head42);
Debug.Log("购买欢乐豆" + response42);
//// ============================================================================================================================
//5.1查询最近一场大屠杀
Dictionary<string, string> head51 = new Dictionary<string, string>
{
{ "Authorization", Authorization }, // 设置授权头
};
// 使用最新的 escapeId 在请求体中
string response51 = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryLatest", "POST", "{}", head51);
Debug.Log("5.1查询最近一场大屠杀: " + response51);
//// ====================================================================================================================
// 5.1.2查询各大逃亡房间最新详情(高性能版):
Dictionary<string, string> head512 = new Dictionary<string, string>
{
{ "Authorization", Authorization }, // 设置授权头
};
string queryEscapeRoomListBody = $@"
{{
""userId"": 106,
""escapeId"": {escapeId}
}}";
string response512 = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryEscapeRoomList", "POST", queryEscapeRoomListBody, head512);
Debug.Log("5.1.2查询各大逃亡房间最新详情(高性能版): " + response512);
//5.1.3,用户下注:
Dictionary<string, string> head513 = new Dictionary<string, string>
{
{ "Authorization", Authorization }, // 设置授权头
};
string userBetBody = $@"
{{
""userId"": 106,
""escapeId"": {escapeId},
""bet"": 100,
""roomNo"":1
}}";
string response513 = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/userBet", "POST", userBetBody, head513);
Debug.Log("5.1.3,用户下注:" + response513);
//5.1.4,查询击杀
Dictionary<string, string> head514 = new Dictionary<string, string>
{
{ "Authorization", Authorization }, // 设置授权头
};
string selectKill = $@"
{{
""userId"": 106,
""escapeId"": {escapeId}
}}";
string response514 = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryKill", "POST", selectKill, head514);
Debug.Log("5.1.4,查询击杀:" + response514);
////5.1.5,查询结算
Dictionary<string, string> head515 = new Dictionary<string, string>
{
{ "Authorization", Authorization }, // 设置授权头
};
string queryUserBetResult = $@"
{{
""userId"": 106,
""escapeId"": {escapeId}
}}";
string response515 = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryUserBetResult", "POST", queryUserBetResult, head515);
Debug.Log("5.1.5,查询结算:" + response515);
}
void OnDestroy()
{
// 取消监听,避免内存泄漏
LoginAndGetToken.OnTokenReceived -= HandleTokenReceived;
selectGameEscape512.OnGameEscapeIdUpdated -= HandleGameEscapeIdUpdated;
}
// Update is called once per frame
void Update()
{
}
}
[Serializable]
public class Search_room//登录和注册用
{
public int userId;
}
//[Serializable]
//public class loginbody//登录和注册用
//{
// public string userName;
// public string password;
// public int verifyCode;
//}
[System.Serializable]
public class User_InformationHead //完善用户信息
{
public string nickName;
public string headImg;
public string gender;
public string birthday;
}
[Serializable]
public class Query_Announcement //查询公告分页
{
public int userId;
public int pageNo;
public int pageSize;
}
[Serializable]
public class Mall_List //获取商城列表
{
public int productType;
public int pageNo;
public int pageSize;
}
[Serializable]
public class Product_Details//商品详情,有问题
{
public int productId;
}
[Serializable]
public class Mall_buy
{ public int productId;
public int userId;
}
[Serializable]
public class cutePoolPage {
public int orderByBeansCoin;
}
*/
/*using System;
using System.Collections;
using System.Collections.Generic;
using System.Xml.Linq;
using UnityEngine;
using UnityEngine.Networking;
using System.Threading.Tasks;
using Newtonsoft.Json;
public class WebConnact : MonoBehaviour
{
private string token; // 保存 token 以便在整个类中使用
void Start()
{
// 注册监听事件,当收到 token 时,触发 HandleTokenReceived
LoginAndGetToken.OnTokenReceived += HandleTokenReceived;
// 订阅事件,当 gameEscapeId 更新时调用 HandleGameEscapeIdUpdated
selectGameEscape512.OnGameEscapeIdUpdated += HandleGameEscapeIdUpdated;
}
// 当接收到 token 时触发此方法
void HandleTokenReceived(string receivedToken)
{
token = receivedToken; // 保存 token
// 首次调用加载初始数据
LoadInitialData(token);
}
// 当游戏逃亡 ID 更新时触发此方法
void HandleGameEscapeIdUpdated(int newGameEscapeId)
{
Debug.Log("GameEscapeId 已更新为: " + newGameEscapeId);
// 加载游戏逃亡相关数据
LoadGameEscapeData(token, newGameEscapeId);
}
// 加载初始数据
private async void LoadInitialData(string token)
{
// 更新用户信息
await UpdateUserInformation(token);
// 查询用户详细信息
await QueryUserDetails(token);
// 加载商城数据
await LoadMallData(token);
}
// 加载游戏逃亡数据
private async void LoadGameEscapeData(string token, int escapeId)
{
// 查询最近的大屠杀
await QueryLatestMassacre(token);
// 查询逃亡房间详情
await QueryEscapeRoomDetails(token, escapeId);
// 用户下注
await UserBet(token, escapeId);
// 查询击杀数据
await QueryKill(token, escapeId);
// 查询用户结算
await QueryUserBetResult(token, escapeId);
}
// 更新用户信息
private async Task UpdateUserInformation(string token)
{
var headers = CreateHeaders(token);
string body = @"
{
""nickName"": ""wulongxiao"",
""headImg"": ""https://fantasymonster-app.oss-cn-hangzhou.aliyuncs.com/upload/imgs/127e4e42d7c0405aab53359c1b278a9c.png"",
""gender"": 1,
""birthday"": ""2023-12-12 12:12:12""
}";
Debug.Log("正在更新用户信息...");
string response = await web.SendRequest("http://121.40.42.41:8080/snail/user/update", "POST", body, headers);
Debug.Log("更新用户信息响应: " + response);
}
// 查询用户详情
private async Task<string> QueryUserDetails(string token)
{
var headers = CreateHeaders(token);
Debug.Log("正在查询用户详细信息...");
string response = await web.SendRequest("http://121.40.42.41:8080/snail/user/queryUserInfo", "POST", "{}", headers);
Debug.Log("查询用户详细信息响应: " + response);
return response;
}
// 加载商城数据
private async Task LoadMallData(string token)
{
// 查询商城虚拟商品列表
await QueryMallList(token, 0);
// 查询商城实体商品列表
await QueryMallList(token, 1);
// 获取商品详情
await GetMallProductDetails(token, 1);
// 购买商品
await BuyMallProduct(token, 106, 1);
}
// 查询商城列表
private async Task QueryMallList(string token, int productType)
{
Mall_List mallList = new Mall_List
{
productType = productType
};
string response = await web.SendRequest("http://121.40.42.41:8080/snail/product/page", "POST", JsonUtility.ToJson(mallList));
Debug.Log($"商城列表 (productType: {productType}) 响应: " + response);
}
// 获取商城商品详情
private async Task GetMallProductDetails(string token, int productId)
{
var headers = CreateHeaders(token);
Product_Details productDetails = new Product_Details
{
productId = productId
};
string response = await web.SendRequest("http://121.40.42.41:8080/snail/product/info", "POST", JsonUtility.ToJson(productDetails), headers);
Debug.Log("获取商品详情响应: " + response);
}
// 购买商品
private async Task BuyMallProduct(string token, int userId, int productId)
{
var headers = CreateHeaders(token);
Mall_buy mallBuy = new Mall_buy
{
userId = userId,
productId = productId
};
string response = await web.SendRequest("http://121.40.42.41:8080/snail/product/buy", "POST", JsonUtility.ToJson(mallBuy), headers);
Debug.Log("购买商品响应: " + response);
}
// 查询最近的大屠杀
private async Task QueryLatestMassacre(string token)
{
var headers = CreateHeaders(token);
string response = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryLatest", "POST", "{}", headers);
Debug.Log("查询最近大屠杀响应: " + response);
}
// 查询逃亡房间详情
private async Task QueryEscapeRoomDetails(string token, int escapeId)
{
var headers = CreateHeaders(token);
string body = $@"
{{
""userId"": 106,
""escapeId"": {escapeId}
}}";
string response = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryEscapeRoomList", "POST", body, headers);
Debug.Log("逃亡房间详情响应: " + response);
}
// 用户下注
private async Task UserBet(string token, int escapeId)
{
var headers = CreateHeaders(token);
string body = $@"
{{
""userId"": 106,
""escapeId"": {escapeId},
""bet"": 100,
""roomNo"": 1
}}";
string response = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/userBet", "POST", body, headers);
Debug.Log("用户下注响应: " + response);
}
// 查询击杀信息
private async Task QueryKill(string token, int escapeId)
{
var headers = CreateHeaders(token);
string body = $@"
{{
""userId"": 106,
""escapeId"": {escapeId}
}}";
string response = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryKill", "POST", body, headers);
Debug.Log("查询击杀信息响应: " + response);
}
// 查询用户下注结果
private async Task QueryUserBetResult(string token, int escapeId)
{
var headers = CreateHeaders(token);
string body = $@"
{{
""userId"": 106,
""escapeId"": {escapeId}
}}";
string response = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryUserBetResult", "POST", body, headers);
Debug.Log("查询用户下注结果响应: " + response);
}
// 创建请求头
private Dictionary<string, string> CreateHeaders(string token)
{
return new Dictionary<string, string>
{
{ "Authorization", token }
};
}
void OnDestroy()
{
// 注销监听事件,避免内存泄漏
LoginAndGetToken.OnTokenReceived -= HandleTokenReceived;
selectGameEscape512.OnGameEscapeIdUpdated -= HandleGameEscapeIdUpdated;
}
// Update 方法保留,但当前没有需要的功能
void Update()
{
}
}*/
/*using System;
using System.Collections;
using System.Collections.Generic;
using System.Xml.Linq;
using UnityEngine;
using UnityEngine.Networking;
using System.Threading.Tasks;
using Newtonsoft.Json;
public class WebConnact : MonoBehaviour
{
private string token; // 保存 token 以便在整个类中使用
private int escapeId = -1; // 保存最新的 escapeId初始为 -1 表示未设置
void Start()
{
// 注册监听事件,当收到 token 时,触发 HandleTokenReceived
LoginAndGetToken.OnTokenReceived += HandleTokenReceived;
// 注册监听,当 escapeId 更新时调用 HandleGameEscapeIdUpdated
selectGameEscape512.OnGameEscapeIdUpdated += HandleGameEscapeIdUpdated;
}
// 当接收到 token 时触发此方法
void HandleTokenReceived(string receivedToken)
{
token = receivedToken; // 保存 token
// 首次调用加载初始数据
LoadInitialData(token);
}
// 当游戏逃亡 ID 更新时触发此方法
void HandleGameEscapeIdUpdated(int newGameEscapeId)
{
escapeId = newGameEscapeId; // 保存最新的 escapeId
Debug.Log("接收到新的 GameEscapeId: " + escapeId);
// 调用加载逃亡游戏相关数据的方法
LoadGameEscapeData(token, escapeId);
}
// 加载初始数据
private async void LoadInitialData(string token)
{
// 更新用户信息
await UpdateUserInformation(token);
// 查询用户详细信息
await QueryUserDetails(token);
// 加载商城数据
await LoadMallData(token);
}
// 加载游戏逃亡数据
private async void LoadGameEscapeData(string token, int escapeId)
{
if (escapeId == -1)
{
Debug.LogWarning("无法加载游戏逃亡数据escapeId 未设置。");
return;
}
// 查询最近的大屠杀
await QueryLatestMassacre(token);
// 查询逃亡房间详情
await QueryEscapeRoomDetails(token, escapeId);
// 用户下注
await UserBet(token, escapeId);
// 查询击杀数据
await QueryKill(token, escapeId);
// 查询用户结算
await QueryUserBetResult(token, escapeId);
}
// 更新用户信息
private async Task UpdateUserInformation(string token)
{
var headers = CreateHeaders(token);
string body = @"
{
""nickName"": ""wulongxiao"",
""headImg"": ""https://fantasymonster-app.oss-cn-hangzhou.aliyuncs.com/upload/imgs/127e4e42d7c0405aab53359c1b278a9c.png"",
""gender"": 1,
""birthday"": ""2023-12-12 12:12:12""
}";
Debug.Log("正在更新用户信息...");
string response = await web.SendRequest("http://121.40.42.41:8080/snail/user/update", "POST", body, headers);
Debug.Log("更新用户信息响应: " + response);
}
// 查询用户详情
private async Task<string> QueryUserDetails(string token)
{
var headers = CreateHeaders(token);
Debug.Log("正在查询用户详细信息...");
string response = await web.SendRequest("http://121.40.42.41:8080/snail/user/queryUserInfo", "POST", "{}", headers);
Debug.Log("查询用户详细信息响应: " + response);
return response;
}
// 加载商城数据
private async Task LoadMallData(string token)
{
// 查询商城虚拟商品列表
await QueryMallList(token, 0);
// 查询商城实体商品列表
await QueryMallList(token, 1);
// 获取商品详情
await GetMallProductDetails(token, 1);
// 购买商品
await BuyMallProduct(token, 106, 1);
}
// 查询商城列表
private async Task QueryMallList(string token, int productType)
{
Mall_List mallList = new Mall_List
{
productType = productType
};
string response = await web.SendRequest("http://121.40.42.41:8080/snail/product/page", "POST", JsonUtility.ToJson(mallList));
Debug.Log($"商城列表 (productType: {productType}) 响应: " + response);
}
// 获取商城商品详情
private async Task GetMallProductDetails(string token, int productId)
{
var headers = CreateHeaders(token);
Product_Details productDetails = new Product_Details
{
productId = productId
};
string response = await web.SendRequest("http://121.40.42.41:8080/snail/product/info", "POST", JsonUtility.ToJson(productDetails), headers);
Debug.Log("获取商品详情响应: " + response);
}
// 购买商品
private async Task BuyMallProduct(string token, int userId, int productId)
{
var headers = CreateHeaders(token);
Mall_buy mallBuy = new Mall_buy
{
userId = userId,
productId = productId
};
string response = await web.SendRequest("http://121.40.42.41:8080/snail/product/buy", "POST", JsonUtility.ToJson(mallBuy), headers);
Debug.Log("购买商品响应: " + response);
}
// 查询最近的大屠杀
private async Task QueryLatestMassacre(string token)
{
var headers = CreateHeaders(token);
string response = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryLatest", "POST", "{}", headers);
Debug.Log("查询最近大屠杀响应: " + response);
}
// 查询逃亡房间详情
private async Task QueryEscapeRoomDetails(string token, int escapeId)
{
var headers = CreateHeaders(token);
string body = $@"
{{
""userId"": 106,
""escapeId"": {escapeId}
}}";
string response = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryEscapeRoomList", "POST", body, headers);
Debug.Log("逃亡房间详情响应: " + response);
}
// 用户下注
private async Task UserBet(string token, int escapeId)
{
var headers = CreateHeaders(token);
string body = $@"
{{
""userId"": 106,
""escapeId"": {escapeId},
""bet"": 100,
""roomNo"": 1
}}";
string response = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/userBet", "POST", body, headers);
Debug.Log("用户下注响应: " + response);
}
// 查询击杀信息
private async Task QueryKill(string token, int escapeId)
{
var headers = CreateHeaders(token);
string body = $@"
{{
""userId"": 106,
""escapeId"": {escapeId}
}}";
string response = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryKill", "POST", body, headers);
Debug.Log("查询击杀信息响应: " + response);
}
// 查询用户下注结果
private async Task QueryUserBetResult(string token, int escapeId)
{
var headers = CreateHeaders(token);
string body = $@"
{{
""userId"": 106,
""escapeId"": {escapeId}
}}";
string response = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryUserBetResult", "POST", body, headers);
Debug.Log("查询用户下注结果响应: " + response);
}
// 创建请求头
private Dictionary<string, string> CreateHeaders(string token)
{
return new Dictionary<string, string>
{
{ "Authorization", token }
};
}
void OnDestroy()
{
// 注销监听事件,避免内存泄漏
LoginAndGetToken.OnTokenReceived -= HandleTokenReceived;
selectGameEscape512.OnGameEscapeIdUpdated -= HandleGameEscapeIdUpdated;
}
}*/
/*using System;
using System.Collections;
using System.Collections.Generic;
using System.Xml.Linq;
using UnityEngine;
using UnityEngine.Networking;
using System.Threading.Tasks;
using Newtonsoft.Json;
public class WebConnact : MonoBehaviour
{
private string token; // 保存 token 以便在整个类中使用
private int escapeId = -1; // 保存最新的 escapeId初始为 -1 表示未设置
void Start()
{
// 注册监听事件,当收到 token 时,触发 HandleTokenReceived
LoginAndGetToken.OnTokenReceived += HandleTokenReceived;
// 注册监听,当 escapeId 更新时调用 HandleGameEscapeIdUpdated但不执行其他方法
selectGameEscape512.OnGameEscapeIdUpdated += HandleGameEscapeIdUpdated;
}
// 当接收到 token 时触发此方法
void HandleTokenReceived(string receivedToken)
{
token = receivedToken; // 保存 token
// 首次调用加载初始数据
LoadInitialData();
}
// 当游戏逃亡 ID 更新时触发此方法,仅保存最新的 escapeId
void HandleGameEscapeIdUpdated(int newGameEscapeId)
{
escapeId = newGameEscapeId; // 保存最新的 escapeId
Debug.Log("接收到新的 GameEscapeId: " + escapeId);
}
// 加载初始数据
private async void LoadInitialData()
{
// 更新用户信息
await UpdateUserInformation();
// 查询用户详细信息
await QueryUserDetails();
// 加载商城数据
await LoadMallData();
}
// 加载游戏逃亡数据,使用最新的 escapeId
public async void LoadGameEscapeData()
{
if (escapeId == -1)
{
Debug.LogWarning("无法加载游戏逃亡数据escapeId 未设置。");
return;
}
// 查询最近的大屠杀
//await QueryLatestMassacre();
// 查询逃亡房间详情
await QueryEscapeRoomDetails();
// 用户下注
await UserBet();
// 查询击杀数据
await QueryKill();
// 查询用户结算
await QueryUserBetResult();
}
// 更新用户信息
private async Task UpdateUserInformation()
{
var headers = CreateHeaders();
string body = @"
{
""nickName"": ""wulongxiao"",
""headImg"": ""https://fantasymonster-app.oss-cn-hangzhou.aliyuncs.com/upload/imgs/127e4e42d7c0405aab53359c1b278a9c.png"",
""gender"": 1,
""birthday"": ""2023-12-12 12:12:12""
}";
Debug.Log("正在更新用户信息...");
string response = await web.SendRequest("http://121.40.42.41:8080/snail/user/update", "POST", body, headers);
Debug.Log("更新用户信息响应: " + response);
}
// 查询用户详情
private async Task<string> QueryUserDetails()
{
var headers = CreateHeaders();
Debug.Log("正在查询用户详细信息...");
string response = await web.SendRequest("http://121.40.42.41:8080/snail/user/queryUserInfo", "POST", "{}", headers);
Debug.Log("查询用户详细信息响应: " + response);
return response;
}
// 加载商城数据
private async Task LoadMallData()
{
// 查询商城虚拟商品列表
await QueryMallList(0);
// 查询商城实体商品列表
await QueryMallList(1);
// 获取商品详情
await GetMallProductDetails(1);
// 购买商品
await BuyMallProduct(106, 1);
}
// 查询商城列表
private async Task QueryMallList(int productType)
{
Mall_List mallList = new Mall_List
{
productType = productType
};
string response = await web.SendRequest("http://121.40.42.41:8080/snail/product/page", "POST", JsonUtility.ToJson(mallList));
Debug.Log($"商城列表 (productType: {productType}) 响应: " + response);
}
// 获取商城商品详情
private async Task GetMallProductDetails(int productId)
{
var headers = CreateHeaders();
Product_Details productDetails = new Product_Details
{
productId = productId
};
string response = await web.SendRequest("http://121.40.42.41:8080/snail/product/info", "POST", JsonUtility.ToJson(productDetails), headers);
Debug.Log("获取商品详情响应: " + response);
}
// 购买商品
private async Task BuyMallProduct(int userId, int productId)
{
var headers = CreateHeaders();
Mall_buy mallBuy = new Mall_buy
{
userId = userId,
productId = productId
};
string response = await web.SendRequest("http://121.40.42.41:8080/snail/product/buy", "POST", JsonUtility.ToJson(mallBuy), headers);
Debug.Log("购买商品响应: " + response);
}
//// 查询最近的大屠杀
//private async Task QueryLatestMassacre()
//{
// var headers = CreateHeaders();
// string response = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryLatest", "POST", "{}", headers);
// Debug.Log("查询最近大屠杀响应: " + response);
//}
// 查询逃亡房间详情
private async Task QueryEscapeRoomDetails()
{
var headers = CreateHeaders();
string body = $@"
{{
""userId"": 106,
""escapeId"": {escapeId}
}}";
string response = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryEscapeRoomList", "POST", body, headers);
Debug.Log("逃亡房间详情响应: " + response);
}
// 用户下注
private async Task UserBet()
{
var headers = CreateHeaders();
string body = $@"
{{
""userId"": 106,
""escapeId"": {escapeId},
""bet"": 100,
""roomNo"": 1
}}";
string response = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/userBet", "POST", body, headers);
Debug.Log("用户下注响应: " + response);
}
// 查询击杀信息
private async Task QueryKill()
{
var headers = CreateHeaders();
string body = $@"
{{
""userId"": 106,
""escapeId"": {escapeId}
}}";
string response = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryKill", "POST", body, headers);
Debug.Log("查询击杀信息响应: " + response);
}
// 查询用户下注结果
private async Task QueryUserBetResult()
{
var headers = CreateHeaders();
string body = $@"
{{
""userId"": 106,
""escapeId"": {escapeId}
}}";
string response = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryUserBetResult", "POST", body, headers);
Debug.Log("查询用户下注结果响应: " + response);
}
// 创建请求头
private Dictionary<string, string> CreateHeaders()
{
return new Dictionary<string, string>
{
{ "Authorization", token }
};
}
void OnDestroy()
{
// 注销监听事件,避免内存泄漏
LoginAndGetToken.OnTokenReceived -= HandleTokenReceived;
selectGameEscape512.OnGameEscapeIdUpdated -= HandleGameEscapeIdUpdated;
}
}*/
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Threading.Tasks;
using Newtonsoft.Json;
public class WebConnact : MonoBehaviour
{
public string token = null; // 保存最新的 token初始为 null
public int escapeId = -1; // 保存最新的 escapeId初始为 -1 表示未设置
void Start()
{
// 注册监听事件,当收到 token 时,触发 HandleTokenReceived
LoginAndGetToken.OnTokenReceived += HandleTokenReceived;
// 注册监听,当 escapeId 更新时调用 HandleGameEscapeIdUpdated但不执行其他方法
selectGameEscape512.OnGameEscapeIdUpdated += HandleGameEscapeIdUpdated;
}
// 当接收到 token 时触发此方法,仅保存 token
public void HandleTokenReceived(string receivedToken)
{
token = receivedToken; // 保存最新的 token
// 首次调用加载初始数据
LoadInitialData();
LoadGameEscapeData();
Debug.Log("接收到新的 token: " + token);
}
// 当游戏逃亡 ID 更新时触发此方法,仅保存最新的 escapeId
public void HandleGameEscapeIdUpdated(int newGameEscapeId)
{
escapeId = newGameEscapeId; // 保存最新的 escapeId
LoadGameEscapeData();
//Debug.Log("接收到新的 GameEscapeId: " + escapeId);
}
// 加载初始数据,使用最新的 token
public async void LoadInitialData()
{
if (string.IsNullOrEmpty(token))
{
Debug.LogWarning("无法加载初始数据token 未设置。");
return;
}
// 更新用户信息
await UpdateUserInformation();
// 查询用户详细信息
await QueryUserDetails();
// 加载商城数据
await LoadMallData();
}
// 加载游戏逃亡数据,使用最新的 escapeId 和 token
public async void LoadGameEscapeData()
{
if (string.IsNullOrEmpty(token))
{
Debug.LogWarning("无法加载游戏逃亡数据token 未设置。");
return;
}
if (escapeId == -1)
{
Debug.LogWarning("无法加载游戏逃亡数据escapeId 未设置。");
return;
}
// 查询最近的大屠杀
// await QueryLatestMassacre();
// 查询逃亡房间详情
await QueryEscapeRoomDetails();
// 用户下注
await UserBet();
// 查询击杀数据
await QueryKill();
// 查询用户结算
await QueryUserBetResult();
}
// 更新用户信息
public async Task UpdateUserInformation()
{
var headers = CreateHeaders();
string body = @"
{
""nickName"": ""wulongxiao"",
""headImg"": ""https://fantasymonster-app.oss-cn-hangzhou.aliyuncs.com/upload/imgs/127e4e42d7c0405aab53359c1b278a9c.png"",
""gender"": 1,
""birthday"": ""2023-12-12 12:12:12""
}";
Debug.Log("正在更新用户信息...");
string response = await web.SendRequest("http://121.40.42.41:8080/snail/user/update", "POST", body, headers);
Debug.Log("更新用户信息响应: " + response);
}
// 查询用户详情
public async Task<string> QueryUserDetails()
{
var headers = CreateHeaders();
Debug.Log("正在查询用户详细信息...");
string response = await web.SendRequest("http://121.40.42.41:8080/snail/user/queryUserInfo", "POST", "{}", headers);
Debug.Log("查询用户详细信息响应: " + response);
return response;
}
// 加载商城数据
public async Task LoadMallData()
{
// 查询商城虚拟商品列表
await QueryMallList(0);
// 查询商城实体商品列表
await QueryMallList(1);
// 获取商品详情
await GetMallProductDetails(1);
// 购买商品
await BuyMallProduct(106, 1);
}
// 查询商城列表
public async Task QueryMallList(int productType)
{
var headers = CreateHeaders();
Mall_List mallList = new Mall_List
{
productType = productType
};
string response = await web.SendRequest("http://121.40.42.41:8080/snail/product/page", "POST", JsonUtility.ToJson(mallList), headers);
Debug.Log($"商城列表 (productType: {productType}) 响应: " + response);
}
// 获取商城商品详情
public async Task GetMallProductDetails(int productId)
{
var headers = CreateHeaders();
Product_Details productDetails = new Product_Details
{
productId = productId
};
string response = await web.SendRequest("http://121.40.42.41:8080/snail/product/info", "POST", JsonUtility.ToJson(productDetails), headers);
Debug.Log("获取商品详情响应: " + response);
}
// 购买商品
public async Task BuyMallProduct(int userId, int productId)
{
var headers = CreateHeaders();
Mall_buy mallBuy = new Mall_buy
{
userId = userId,
productId = productId
};
string response = await web.SendRequest("http://121.40.42.41:8080/snail/product/buy", "POST", JsonUtility.ToJson(mallBuy), headers);
Debug.Log("购买商品响应: " + response);
}
//// 查询最近的大屠杀
//public async Task QueryLatestMassacre()
//{
// var headers = CreateHeaders();
// string response = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryLatest", "POST", "{}", headers);
// Debug.Log("查询最近大屠杀响应: " + response);
//}
// 查询逃亡房间详情
public async Task QueryEscapeRoomDetails()
{
var headers = CreateHeaders();
string body = $@"
{{
""userId"": 106,
""escapeId"": {escapeId}
}}";
string response = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryEscapeRoomList", "POST", body, headers);
Debug.Log("逃亡房间详情响应: " + response);
}
// 用户下注
public async Task UserBet()
{
var headers = CreateHeaders();
string body = $@"
{{
""userId"": 106,
""escapeId"": {escapeId},
""bet"": 100,
""roomNo"": 1
}}";
string response = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/userBet", "POST", body, headers);
Debug.Log("用户下注响应: " + response);
}
// 查询击杀信息
public async Task QueryKill()
{
var headers = CreateHeaders();
string body = $@"
{{
""userId"": 106,
""escapeId"": {escapeId}
}}";
string response = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryKill", "POST", body, headers);
Debug.Log("查询击杀信息响应: " + response);
}
// 查询用户下注结果
public async Task QueryUserBetResult()
{
var headers = CreateHeaders();
string body = $@"
{{
""userId"": 106,
""escapeId"": {escapeId}
}}";
string response = await web.SendRequest("http://121.40.42.41:8080/snail/gameEscape/queryUserBetResult", "POST", body, headers);
Debug.Log("查询用户下注结果响应: " + response);
}
// 创建请求头,使用最新的 token
public Dictionary<string, string> CreateHeaders()
{
if (string.IsNullOrEmpty(token))
{
Debug.LogWarning("尝试创建请求头时token 未设置。");
return new Dictionary<string, string>();
}
return new Dictionary<string, string>
{
{ "Authorization", token }
};
}
void OnDestroy()
{
// 注销监听事件,避免内存泄漏
LoginAndGetToken.OnTokenReceived -= HandleTokenReceived;
selectGameEscape512.OnGameEscapeIdUpdated -= HandleGameEscapeIdUpdated;
}
}
//[Serializable]
//public class loginbody//登录和注册用
//{
// public string userName;
// public string password;
// public int verifyCode;
//}
[System.Serializable]
public class User_InformationHead //完善用户信息
{
public string nickName;
public string headImg;
public string gender;
public string birthday;
}
[Serializable]
public class Query_Announcement //查询公告分页
{
public int userId;
public int pageNo;
public int pageSize;
}
[Serializable]
public class Mall_List //获取商城列表
{
public int productType;
public int pageNo;
public int pageSize;
}
[Serializable]
public class Product_Details//商品详情,有问题
{
public int productId;
}
[Serializable]
public class Mall_buy
{
public int productId;
public int userId;
}
[Serializable]
public class cutePoolPage
{
public int orderByBeansCoin;
}