网络异常处理

This commit is contained in:
CaiYanPeng 2021-11-23 15:58:02 +08:00
parent 8c5ad08475
commit c0ebe80a1f

View File

@ -16,23 +16,41 @@ namespace Assets.Scripts.Apis
protected async override Task<HttpResponseMessage> SendAsync( protected async override Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request, CancellationToken cancellationToken) HttpRequestMessage request, CancellationToken cancellationToken)
{ {
var response = await base.SendAsync(request, cancellationToken).ConfigureAwait(false); try
//{"result":false,"errMsg":"已在其他设备登录","code":401}
var result = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
if (request.RequestUri.ToString().Contains(App.Host) && result.Contains(@"{""result"":false,"))
{ {
var json = ParseJson<JsonResult<object>>(result); var response = await base.SendAsync(request, cancellationToken).ConfigureAwait(false);
if (json.code == 401) //{"result":false,"errMsg":"已在其他设备登录","code":401}
var result = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
if (request.RequestUri.ToString().Contains(App.Host) && result.Contains(@"{""result"":false,"))
{ {
App.is401 = json.errMsg; var json = ParseJson<JsonResult<object>>(result);
UnityMainThreadDispatcher.Instance().Enqueue(LoadLogin(json.errMsg)); if (json.code == 401)
{
App.is401 = json.errMsg;
UnityMainThreadDispatcher.Instance().Enqueue(LoadLogin(json.errMsg));
}
} }
else
{
App.is401 = null;
}
if (response.StatusCode != System.Net.HttpStatusCode.OK)
{
response.Content = new StringContent(new JsonResult<object> { result = false, errMsg = "Please check if the network connection is normal.", data = null }.ToString());
}
return response;
} }
else catch (Exception e)
{ {
App.is401 = null; Debug.Log(e);
HttpResponseMessage httpResponse = new HttpResponseMessage
{
StatusCode = System.Net.HttpStatusCode.BadRequest,
Content = new StringContent(new JsonResult<object> { result = false, errMsg = "Please check if the network connection is normal.", data = null }.ToString())
};
return httpResponse;
} }
return response;
} }
private T ParseJson<T>(string result) private T ParseJson<T>(string result)
{ {