2024-04-26 18:14:51 +08:00
|
|
|
|
using Cysharp.Threading.Tasks;
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
using UnityEngine.Networking;
|
|
|
|
|
|
|
|
|
|
namespace Game
|
|
|
|
|
{
|
|
|
|
|
public interface IHttpManager
|
|
|
|
|
{
|
2024-04-27 11:37:11 +08:00
|
|
|
|
UniTask<bool> LoginAsync(string username, string password, ResponseData responseData);
|
2024-04-26 18:14:51 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class HttpManager : ManagerBase, IHttpManager
|
|
|
|
|
{
|
2024-04-27 11:37:11 +08:00
|
|
|
|
public async UniTask<bool> LoginAsync(string username, string password, ResponseData responseData)
|
2024-04-26 18:14:51 +08:00
|
|
|
|
{
|
|
|
|
|
WWWForm wwwForm = new WWWForm();
|
|
|
|
|
wwwForm.AddField("username", username);
|
|
|
|
|
wwwForm.AddField("password", password);
|
|
|
|
|
|
|
|
|
|
using (UnityWebRequest request = UnityWebRequest.Post(NetworkConst.loginUrl, wwwForm))
|
|
|
|
|
{
|
|
|
|
|
await request.SendWebRequest();
|
|
|
|
|
|
|
|
|
|
// 处理响应
|
|
|
|
|
if (request.result == UnityWebRequest.Result.Success)
|
|
|
|
|
{
|
|
|
|
|
Debug.Log("POST request successful!");
|
|
|
|
|
var downloadHandlerText = request.downloadHandler.text;
|
|
|
|
|
Debug.Log("Response: " + downloadHandlerText);
|
|
|
|
|
|
|
|
|
|
var data = JsonConvert.DeserializeObject<ResponseData>(downloadHandlerText);
|
|
|
|
|
if (data.code == "0")
|
|
|
|
|
{
|
|
|
|
|
Game.socketManager.SetHttpToken(data.data.ToString());
|
|
|
|
|
Game.socketManager.ConnectAsync();
|
2024-04-27 11:37:11 +08:00
|
|
|
|
responseData = data;
|
2024-04-26 18:14:51 +08:00
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Debug.LogError("POST request failed: " + request.error);
|
|
|
|
|
}
|
|
|
|
|
|
2024-04-27 11:37:11 +08:00
|
|
|
|
responseData = null;
|
2024-04-26 18:14:51 +08:00
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class UserLoginData
|
|
|
|
|
{
|
|
|
|
|
public string username;
|
|
|
|
|
public string password;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class ResponseData
|
|
|
|
|
{
|
|
|
|
|
public string code;
|
|
|
|
|
public string msg;
|
|
|
|
|
public object data;
|
|
|
|
|
}
|
|
|
|
|
}
|