_TheStrongestSnail/TheStrongestSnail/Assets/Scripts/Login/WebConnact.cs

544 lines
20 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()
{
}
}
/*public class WebConnact : MonoBehaviour
{
void Start()
{
//由于除登录注册外的其他方法都需要登录后返回的token
//因此登录不在此发送请求(同时)
//采用监听和事件回调的方法只有监听到登录和token返回时才运行其他方法
LoginAndGetToken.OnTokenReceived += HandleTokenReceived;
//Loding();
// 订阅事件,当 gameEscapeId 更新时调用 HandleGameEscapeIdUpdated
selectGameEscape512.OnGameEscapeIdUpdated += HandleGameEscapeIdUpdated;
}
void HandleTokenReceived(string token)
{
// 使用 token
//string loginToken=token;
Debug.Log("HandleTokenReceived监听:"+token);
Loding(token);
}
void HandleGameEscapeIdUpdated(int newGameEscapeId)
{
Debug.Log("GameEscapeId 已更新为: " + 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);
//loginbody body = new loginbody();
//body.userName = "15151658596";// + 15151658596;
//body.password = "123456";// + 123456;
//body.verifyCode = 111111;
//string regisestrespose = await web.SendRequest("http://121.40.42.41:8080/snail/user/register", "POST", JsonUtility.ToJson(body));
//Debug.Log(regisestrespose);
//注册请求 //已通过
//loginbody body = new loginbody();
//body.userName = "15151658596";// + 15151658596;
//body.password = "123456";// + 123456;
//body.verifyCode = 111111;
//string loginResponse = await web.SendRequest("http://121.40.42.41:8080/snail/user/login", "POST", JsonUtility.ToJson(body));
//Debug.Log(loginResponse);
//登录请求//已通过
////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 }, // 设置授权头
// };
//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"": 24336
// }";
//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"": 24381,
// ""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"": 24377
// }";
//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;
}
// 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;
}