增加web超时处理
This commit is contained in:
@@ -22,15 +22,15 @@ namespace Stary.Evo
|
|||||||
roleType = "client",
|
roleType = "client",
|
||||||
};
|
};
|
||||||
string postData = JsonConvert.SerializeObject(data);
|
string postData = JsonConvert.SerializeObject(data);
|
||||||
using (UnityWebRequest webRequest = UnityWebRequest.PostWwwForm(url, postData)) //第二种写法此行注释
|
try
|
||||||
{
|
{
|
||||||
|
using UnityWebRequest webRequest = UnityWebRequest.PostWwwForm(url, postData);
|
||||||
byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(postData);
|
byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(postData);
|
||||||
webRequest.uploadHandler = new UploadHandlerRaw(postBytes);
|
webRequest.uploadHandler = new UploadHandlerRaw(postBytes);
|
||||||
webRequest.SetRequestHeader("Content-Type", "application/json");
|
webRequest.SetRequestHeader("Content-Type", "application/json");
|
||||||
|
webRequest.timeout = 10;
|
||||||
await webRequest.SendWebRequest();
|
await webRequest.SendWebRequest();
|
||||||
Debug.Log("登陆返回");
|
|
||||||
webRequest.uploadHandler?.Dispose();
|
webRequest.uploadHandler?.Dispose();
|
||||||
Debug.Log("卸载uploadHandler");
|
|
||||||
// 更新错误检查方式
|
// 更新错误检查方式
|
||||||
if (webRequest.result == UnityWebRequest.Result.ConnectionError ||
|
if (webRequest.result == UnityWebRequest.Result.ConnectionError ||
|
||||||
webRequest.result == UnityWebRequest.Result.ProtocolError)
|
webRequest.result == UnityWebRequest.Result.ProtocolError)
|
||||||
@@ -39,27 +39,28 @@ namespace Stary.Evo
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Debug.Log("卸载uploadHandler1");
|
|
||||||
ResultMessageEntity authResponse =
|
ResultMessageEntity authResponse =
|
||||||
JsonConvert.DeserializeObject<ResultMessageEntity>(webRequest.downloadHandler.text);
|
JsonConvert.DeserializeObject<ResultMessageEntity>(webRequest.downloadHandler.text);
|
||||||
Debug.Log("卸载uploadHandler2"+authResponse.data);
|
Debug.Log("UnityEvo:ResultMessageEntity" + authResponse.data);
|
||||||
if (authResponse.code == 200)
|
if (authResponse.code == 200)
|
||||||
{
|
{
|
||||||
Debug.Log("卸载uploadHandler3");
|
|
||||||
AuthenticationResponse authResponseData =
|
AuthenticationResponse authResponseData =
|
||||||
JsonConvert.DeserializeObject<AuthenticationResponse>(authResponse.data.ToString());
|
JsonConvert.DeserializeObject<AuthenticationResponse>(authResponse.data.ToString());
|
||||||
Debug.Log("卸载uploadHandler4"+authResponseData.Token);
|
Debug.Log("UnityEvo:AuthenticationResponse" + authResponseData.Token);
|
||||||
authorization = authResponseData.Token;
|
authorization = authResponseData.Token;
|
||||||
Debug.Log("卸载uploadHandler5");
|
|
||||||
PlayerPrefs.SetString("Authorization", authorization);
|
PlayerPrefs.SetString("Authorization", authorization);
|
||||||
Debug.Log("卸载uploadHandler6");
|
Debug.Log("UnityEvo:登录成功");
|
||||||
Debug.Log("登录成功");
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Debug.LogError($"UnityEvo:WebRequestSystem.Login" + e.Message);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -73,38 +74,35 @@ namespace Stary.Evo
|
|||||||
authorization = PlayerPrefs.GetString("Authorization");
|
authorization = PlayerPrefs.GetString("Authorization");
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
using (UnityWebRequest webRequest = UnityWebRequest.Get($"{url}?token={authorization}"))
|
using UnityWebRequest webRequest = UnityWebRequest.Get($"{url}?token={authorization}");
|
||||||
|
webRequest.downloadHandler = new DownloadHandlerBuffer();
|
||||||
|
webRequest.timeout = 10;
|
||||||
|
await webRequest.SendWebRequest();
|
||||||
|
// 增强错误处理
|
||||||
|
if (webRequest.result != UnityWebRequest.Result.Success)
|
||||||
{
|
{
|
||||||
webRequest.downloadHandler = new DownloadHandlerBuffer();
|
var errorMsg = $"HTTP {webRequest.responseCode}\n" +
|
||||||
await webRequest.SendWebRequest();
|
$"URL: {url}\n" +
|
||||||
|
$"Error: {webRequest.error}\n" +
|
||||||
|
$"Response: {webRequest.downloadHandler.text}";
|
||||||
|
|
||||||
// 增强错误处理
|
Debug.LogError(errorMsg);
|
||||||
if (webRequest.result != UnityWebRequest.Result.Success)
|
return false;
|
||||||
{
|
|
||||||
var errorMsg = $"HTTP {webRequest.responseCode}\n" +
|
|
||||||
$"URL: {url}\n" +
|
|
||||||
$"Error: {webRequest.error}\n" +
|
|
||||||
$"Response: {webRequest.downloadHandler.text}";
|
|
||||||
|
|
||||||
Debug.LogError(errorMsg);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
ResultMessageEntity resultMessageEntity =
|
|
||||||
JsonConvert.DeserializeObject<ResultMessageEntity>(webRequest.downloadHandler.text);
|
|
||||||
if (resultMessageEntity.code == 200)
|
|
||||||
return true; // 添加返回值
|
|
||||||
else
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ResultMessageEntity resultMessageEntity =
|
||||||
|
JsonConvert.DeserializeObject<ResultMessageEntity>(webRequest.downloadHandler.text);
|
||||||
|
if (resultMessageEntity.code == 200)
|
||||||
|
return true; // 添加返回值
|
||||||
|
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Debug.LogError(e);
|
Debug.LogError($"UnityEvo:WebRequestSystem.GetValidateToken" + e.Message);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -124,6 +122,7 @@ namespace Stary.Evo
|
|||||||
message = "用户未登录,请先登录"
|
message = "用户未登录,请先登录"
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
//UnityWebRequest[] files = new UnityWebRequest[3];
|
//UnityWebRequest[] files = new UnityWebRequest[3];
|
||||||
WWWForm form = new WWWForm();
|
WWWForm form = new WWWForm();
|
||||||
|
|
||||||
@@ -132,12 +131,15 @@ namespace Stary.Evo
|
|||||||
byte[] bytes = await File.ReadAllBytesAsync(path[i]);
|
byte[] bytes = await File.ReadAllBytesAsync(path[i]);
|
||||||
form.AddBinaryData("files[]", bytes, Path.GetFileName(path[i]));
|
form.AddBinaryData("files[]", bytes, Path.GetFileName(path[i]));
|
||||||
}
|
}
|
||||||
using (UnityWebRequest webRequest = UnityWebRequest.Post(url, form))
|
|
||||||
|
try
|
||||||
{
|
{
|
||||||
|
using UnityWebRequest webRequest = UnityWebRequest.Post(url, form);
|
||||||
webRequest.SetRequestHeader("Authorization", authorization);
|
webRequest.SetRequestHeader("Authorization", authorization);
|
||||||
webRequest.disposeUploadHandlerOnDispose = true;
|
webRequest.disposeUploadHandlerOnDispose = true;
|
||||||
webRequest.disposeDownloadHandlerOnDispose = true;
|
webRequest.disposeDownloadHandlerOnDispose = true;
|
||||||
webRequest.disposeCertificateHandlerOnDispose = true;
|
webRequest.disposeCertificateHandlerOnDispose = true;
|
||||||
|
webRequest.timeout = 60;
|
||||||
await webRequest.SendWebRequest();
|
await webRequest.SendWebRequest();
|
||||||
webRequest.uploadHandler?.Dispose();
|
webRequest.uploadHandler?.Dispose();
|
||||||
// 更新错误检查方式
|
// 更新错误检查方式
|
||||||
@@ -159,18 +161,29 @@ namespace Stary.Evo
|
|||||||
{
|
{
|
||||||
Debug.LogError("上传异常,无文件数据返回!!");
|
Debug.LogError("上传异常,无文件数据返回!!");
|
||||||
}
|
}
|
||||||
|
|
||||||
return resultMessageEntity;
|
return resultMessageEntity;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Debug.LogError($"UnityEvo:WebRequestSystem.PostFile" + e.Message);
|
||||||
|
return new ResultMessageEntity()
|
||||||
|
{
|
||||||
|
code = 5001,
|
||||||
|
message = e.Message
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// GET请求数据
|
/// GET请求数据
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="url">请求数据的URL地址</param>
|
/// <param name="url">请求数据的URL地址</param>
|
||||||
/// <param name="token">token验证的参数,此处为authorization</param>
|
/// <param name="token">token验证的参数,此处为authorization</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static async Task<ResultMessageEntity> GetFile(string url,string tempPath, Action<float> downloadProgress = null)
|
public static async Task<ResultMessageEntity> GetFile(string url, string tempPath,
|
||||||
|
Action<float> downloadProgress = null)
|
||||||
{
|
{
|
||||||
if (!GetTokenState())
|
if (!GetTokenState())
|
||||||
{
|
{
|
||||||
@@ -184,54 +197,54 @@ namespace Stary.Evo
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
using (UnityWebRequest webRequest = UnityWebRequest.Get(url))
|
using UnityWebRequest webRequest = UnityWebRequest.Get(url);
|
||||||
{
|
webRequest.downloadHandler = new DownloadHandlerFile(tempPath);
|
||||||
webRequest.downloadHandler = new DownloadHandlerFile(tempPath);
|
if (authorization != null)
|
||||||
if (authorization != null)
|
webRequest.SetRequestHeader("Authorization", authorization); // 修正请求头名称规范
|
||||||
webRequest.SetRequestHeader("Authorization", authorization); // 修正请求头名称规范
|
|
||||||
|
|
||||||
|
|
||||||
var operation= webRequest.SendWebRequest();
|
|
||||||
while (!operation.isDone)
|
|
||||||
{
|
|
||||||
downloadProgress?.Invoke(webRequest.downloadProgress);
|
|
||||||
await UniTask.Yield();
|
|
||||||
}
|
|
||||||
// 增强错误处理
|
|
||||||
if (webRequest.result != UnityWebRequest.Result.Success)
|
|
||||||
{
|
|
||||||
var errorMsg = $"HTTP {webRequest.responseCode}\n" +
|
|
||||||
$"URL: {url}\n" +
|
|
||||||
$"Error: {webRequest.error}\n";
|
|
||||||
|
|
||||||
Debug.LogError(errorMsg);
|
|
||||||
return new ResultMessageEntity()
|
var operation = webRequest.SendWebRequest();
|
||||||
{
|
while (!operation.isDone)
|
||||||
code = 5001,
|
{
|
||||||
message = errorMsg
|
downloadProgress?.Invoke(webRequest.downloadProgress);
|
||||||
};
|
await UniTask.Yield();
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
// 增强错误处理
|
||||||
|
if (webRequest.result != UnityWebRequest.Result.Success)
|
||||||
|
{
|
||||||
|
var errorMsg = $"HTTP {webRequest.responseCode}\n" +
|
||||||
|
$"URL: {url}\n" +
|
||||||
|
$"Error: {webRequest.error}\n";
|
||||||
|
|
||||||
|
Debug.LogError(errorMsg);
|
||||||
|
return new ResultMessageEntity()
|
||||||
{
|
{
|
||||||
return new ResultMessageEntity()
|
code = 5001,
|
||||||
{
|
message = errorMsg
|
||||||
code = 200,
|
};
|
||||||
message = "下载成功"
|
}
|
||||||
};
|
else
|
||||||
}
|
{
|
||||||
|
return new ResultMessageEntity()
|
||||||
|
{
|
||||||
|
code = 200,
|
||||||
|
message = "下载成功"
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Debug.LogError(e);
|
Debug.LogError($"UnityEvo:WebRequestSystem.GetFile" + e.Message);
|
||||||
|
|
||||||
return new ResultMessageEntity()
|
return new ResultMessageEntity()
|
||||||
{
|
{
|
||||||
code = 5001,
|
code = 5001,
|
||||||
message = e.Message
|
message = e.Message
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// POST请求数据
|
/// POST请求数据
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -250,39 +263,54 @@ namespace Stary.Evo
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
using (UnityWebRequest webRequest = UnityWebRequest.PostWwwForm(url, postData)) //第二种写法此行注释
|
try
|
||||||
{
|
{
|
||||||
byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(postData);
|
using (UnityWebRequest webRequest = UnityWebRequest.PostWwwForm(url, postData)) //第二种写法此行注释
|
||||||
webRequest.uploadHandler = new UploadHandlerRaw(postBytes);
|
|
||||||
webRequest.SetRequestHeader("Content-Type", "application/json");
|
|
||||||
webRequest.SetRequestHeader("Authorization", authorization);
|
|
||||||
webRequest.disposeUploadHandlerOnDispose = true;
|
|
||||||
webRequest.disposeDownloadHandlerOnDispose = true;
|
|
||||||
webRequest.disposeCertificateHandlerOnDispose = true;
|
|
||||||
await webRequest.SendWebRequest();
|
|
||||||
webRequest.uploadHandler?.Dispose();
|
|
||||||
// 更新错误检查方式
|
|
||||||
if (webRequest.result == UnityWebRequest.Result.ConnectionError ||
|
|
||||||
webRequest.result == UnityWebRequest.Result.ProtocolError)
|
|
||||||
{
|
{
|
||||||
Debug.LogError(webRequest.error);
|
byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(postData);
|
||||||
return new ResultMessageEntity()
|
webRequest.uploadHandler = new UploadHandlerRaw(postBytes);
|
||||||
|
webRequest.SetRequestHeader("Content-Type", "application/json");
|
||||||
|
webRequest.SetRequestHeader("Authorization", authorization);
|
||||||
|
webRequest.disposeUploadHandlerOnDispose = true;
|
||||||
|
webRequest.disposeDownloadHandlerOnDispose = true;
|
||||||
|
webRequest.disposeCertificateHandlerOnDispose = true;
|
||||||
|
webRequest.timeout = 20;
|
||||||
|
await webRequest.SendWebRequest();
|
||||||
|
webRequest.uploadHandler?.Dispose();
|
||||||
|
// 更新错误检查方式
|
||||||
|
if (webRequest.result == UnityWebRequest.Result.ConnectionError ||
|
||||||
|
webRequest.result == UnityWebRequest.Result.ProtocolError)
|
||||||
{
|
{
|
||||||
code = 5001,
|
Debug.LogError(webRequest.error);
|
||||||
message = webRequest.error
|
return new ResultMessageEntity()
|
||||||
};
|
{
|
||||||
}
|
code = 5001,
|
||||||
else
|
message = webRequest.error
|
||||||
{
|
};
|
||||||
ResultMessageEntity resultMessageEntity =
|
}
|
||||||
JsonConvert.DeserializeObject<ResultMessageEntity>(webRequest.downloadHandler.text);
|
else
|
||||||
if (resultMessageEntity.code != 200)
|
{
|
||||||
{
|
ResultMessageEntity resultMessageEntity =
|
||||||
Debug.LogError(resultMessageEntity.message);
|
JsonConvert.DeserializeObject<ResultMessageEntity>(webRequest.downloadHandler.text);
|
||||||
|
if (resultMessageEntity.code != 200)
|
||||||
|
{
|
||||||
|
Debug.LogError(resultMessageEntity.message);
|
||||||
|
}
|
||||||
|
|
||||||
|
return resultMessageEntity;
|
||||||
}
|
}
|
||||||
return resultMessageEntity;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Debug.LogError($"UnityEvo:WebRequestSystem.Post" + e.Message);
|
||||||
|
|
||||||
|
return new ResultMessageEntity()
|
||||||
|
{
|
||||||
|
code = 5001,
|
||||||
|
message = e.Message
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -305,48 +333,48 @@ namespace Stary.Evo
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
using (UnityWebRequest webRequest = UnityWebRequest.Get(url))
|
using UnityWebRequest webRequest = UnityWebRequest.Get(url);
|
||||||
|
webRequest.downloadHandler = new DownloadHandlerBuffer();
|
||||||
|
if (authorization != null)
|
||||||
|
webRequest.SetRequestHeader("Authorization", authorization); // 修正请求头名称规范
|
||||||
|
|
||||||
|
webRequest.timeout = 20;
|
||||||
|
await webRequest.SendWebRequest();
|
||||||
|
|
||||||
|
// 增强错误处理
|
||||||
|
if (webRequest.result != UnityWebRequest.Result.Success)
|
||||||
{
|
{
|
||||||
webRequest.downloadHandler = new DownloadHandlerBuffer();
|
var errorMsg = $"HTTP {webRequest.responseCode}\n" +
|
||||||
if (authorization != null)
|
$"URL: {url}\n" +
|
||||||
webRequest.SetRequestHeader("Authorization", authorization); // 修正请求头名称规范
|
$"Error: {webRequest.error}\n" +
|
||||||
|
$"Response: {webRequest.downloadHandler.text}";
|
||||||
|
|
||||||
await webRequest.SendWebRequest();
|
Debug.LogError(errorMsg);
|
||||||
|
return new ResultMessageEntity()
|
||||||
// 增强错误处理
|
|
||||||
if (webRequest.result != UnityWebRequest.Result.Success)
|
|
||||||
{
|
{
|
||||||
var errorMsg = $"HTTP {webRequest.responseCode}\n" +
|
code = 5001,
|
||||||
$"URL: {url}\n" +
|
message = errorMsg
|
||||||
$"Error: {webRequest.error}\n" +
|
};
|
||||||
$"Response: {webRequest.downloadHandler.text}";
|
|
||||||
|
|
||||||
Debug.LogError(errorMsg);
|
|
||||||
return new ResultMessageEntity()
|
|
||||||
{
|
|
||||||
code = 5001,
|
|
||||||
message = errorMsg
|
|
||||||
};
|
|
||||||
}
|
|
||||||
ResultMessageEntity resultMessageEntity =
|
|
||||||
JsonConvert.DeserializeObject<ResultMessageEntity>(webRequest.downloadHandler.text);
|
|
||||||
if (resultMessageEntity.code != 200)
|
|
||||||
{
|
|
||||||
Debug.LogError(resultMessageEntity.message);
|
|
||||||
}
|
|
||||||
return resultMessageEntity;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ResultMessageEntity resultMessageEntity =
|
||||||
|
JsonConvert.DeserializeObject<ResultMessageEntity>(webRequest.downloadHandler.text);
|
||||||
|
if (resultMessageEntity.code != 200)
|
||||||
|
{
|
||||||
|
Debug.LogError(resultMessageEntity.message);
|
||||||
|
}
|
||||||
|
|
||||||
|
return resultMessageEntity;
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Debug.LogError(e);
|
Debug.LogError($"UnityEvo:WebRequestSystem.Get" + e.Message);
|
||||||
return new ResultMessageEntity()
|
return new ResultMessageEntity()
|
||||||
{
|
{
|
||||||
code = 5001,
|
code = 5001,
|
||||||
message = e.Message
|
message = e.Message
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "com.staryevo.main",
|
"name": "com.staryevo.main",
|
||||||
"version": "1.2.14",
|
"version": "1.2.15",
|
||||||
"displayName": "00.StaryEvo",
|
"displayName": "00.StaryEvo",
|
||||||
"description": "This is an Framework package(后台服务器版本,端口9527)",
|
"description": "This is an Framework package(后台服务器版本,端口9527)",
|
||||||
"unity": "2021.3",
|
"unity": "2021.3",
|
||||||
|
|||||||
Reference in New Issue
Block a user