120 lines
3.7 KiB
C#
120 lines
3.7 KiB
C#
using UnityEngine;
|
||
using WXGame.Network;
|
||
using Cysharp.Threading.Tasks;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using MotionFramework;
|
||
|
||
namespace DefaultNamespace
|
||
{
|
||
/// <summary>
|
||
/// 用户数据网络管理类
|
||
/// </summary>
|
||
public class UserDataNetworkManager : ModuleSingleton<UserDataNetworkManager>, IModule
|
||
{
|
||
private UserInfoResponse _myInfo;
|
||
|
||
public UserInfoResponse MyInfo => _myInfo;
|
||
|
||
|
||
/// <summary>
|
||
/// 获取我的好友(异步方式)
|
||
/// </summary>
|
||
/// <returns>UniTask<FriendResponse></returns>
|
||
public async UniTask<FriendResponse> GetMyFriend()
|
||
{
|
||
Debug.Log("开始异步获取好友列表...");
|
||
|
||
try
|
||
{
|
||
// 构建POST请求参数(urlencoded格式)
|
||
string postData = $"page={1}";
|
||
|
||
Debug.Log(postData);
|
||
|
||
// 使用异步方式发送POST请求
|
||
var result = await WebRequestManager.Instance.PostRequestAsync(
|
||
url: Apis.GetMyFriend(),
|
||
signParams: new Dictionary<string, string>()
|
||
{
|
||
{ "page", "1" },
|
||
}
|
||
);
|
||
|
||
Debug.Log($"好友列表请求成功!状态码: {result.ResponseCode}");
|
||
Debug.Log($"响应内容: {result.ResponseText}");
|
||
|
||
FriendResponse friendResponse = JsonUtility.FromJson<FriendResponse>(result.ResponseText);
|
||
return friendResponse;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
Debug.LogError($"获取好友列表失败: {ex.Message}");
|
||
throw;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取我的用户信息(异步方式)
|
||
/// </summary>
|
||
/// <returns>UniTask<UserInfoResponse></returns>
|
||
public async UniTask<UserInfoResponse> GetMyInfo()
|
||
{
|
||
Debug.Log("开始异步获取用户信息...");
|
||
|
||
try
|
||
{
|
||
// 使用异步方式发送POST请求获取用户信息
|
||
var result = await WebRequestManager.Instance.PostRequestAsync(
|
||
url: Apis.GetMyInfo()
|
||
);
|
||
|
||
Debug.Log($"用户信息请求成功!状态码: {result.ResponseCode}");
|
||
Debug.Log($"响应内容: {result.ResponseText}");
|
||
|
||
// 解析JSON响应数据
|
||
UserInfoResponse userInfoResponse = JsonUtility.FromJson<UserInfoResponse>(result.ResponseText);
|
||
_myInfo = userInfoResponse;
|
||
// 验证响应数据
|
||
if (userInfoResponse == null)
|
||
{
|
||
throw new Exception("用户信息响应数据为空");
|
||
}
|
||
|
||
if (userInfoResponse.code != 0)
|
||
{
|
||
throw new Exception($"获取用户信息失败: {userInfoResponse.msg}");
|
||
}
|
||
|
||
if (userInfoResponse.data == null)
|
||
{
|
||
throw new Exception("用户信息数据为空");
|
||
}
|
||
|
||
Debug.Log($"用户信息解析成功 - 用户ID: {userInfoResponse.data.user_id}, 昵称: {userInfoResponse.data.user_username}");
|
||
return userInfoResponse;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
Debug.LogError($"获取用户信息失败: {ex.Message}");
|
||
throw;
|
||
}
|
||
}
|
||
|
||
public void OnCreate(object createParam)
|
||
{
|
||
}
|
||
|
||
public void OnUpdate()
|
||
{
|
||
}
|
||
|
||
public void OnDestroy()
|
||
{
|
||
}
|
||
|
||
public void OnGUI()
|
||
{
|
||
}
|
||
}
|
||
} |