This commit is contained in:
Caiyanpeng committed 2021-11-03 09:52:03 +08:00
1 parent 558fb16160
commit f92b623349
14 files changed
+696 -597

No files matched your search

+7 -3
View File
@@ -29,19 +29,18 @@ namespace Assets.Scripts.Apis
}
//protected static EasyHttp.Http.HttpClient http;
private static System.Net.Http.HttpClient httpClient;
private static HttpClientHandler httpClientHandler;
private static PfHttpClientHandler httpClientHandler;
static ApiBase()
{
//http = new EasyHttp.Http.HttpClient();
//http.Request.PersistCookies = true;
httpClientHandler = new HttpClientHandler();
httpClientHandler = new PfHttpClientHandler();
httpClientHandler.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
httpClientHandler.Proxy = WebRequest.GetSystemWebProxy();
httpClientHandler.CookieContainer = _cookieCollection;
httpClientHandler.UseCookies = true;
//httpClientHandler.CookieContainer.Add(new Uri(ConfigHelper.Host), new Cookie("PowerFun.AUTH", "E1F130A03C0C2F01DF465A17AAA4740E9C44FC5F7C5077AF5A09B5ED29F0CF4FABE44329111C0BDBC6D97A28E7C7C188250265B37D2E6A849D7F0CAC606490648F17DC7FB9C8778BE7217991EBB6304BD543CFEE55084E54CCD634B49F26A751","/"));
httpClient = new System.Net.Http.HttpClient(httpClientHandler);
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HandleHeaders(httpClient.DefaultRequestHeaders);
@@ -172,8 +171,13 @@ namespace Assets.Scripts.Apis
{
AddLanguage();
var response = await httpClient.GetAsync(url, HttpCompletionOption.ResponseContentRead).ConfigureAwait(false);
return await response.Content.ReadAsStreamAsync();
}
// protected override Task<HttpResponseMessage> SendAsync(
// HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
//}
private async Task<T> ParseJsonAsync<T>(HttpResponseMessage response)
{
var result = await response.Content.ReadAsStringAsync();
+1
View File
@@ -10,6 +10,7 @@ namespace Assets.Scripts.Apis
public class JsonResult
{
public bool result { get; set; }
public int? code { get; set; }
//public dynamic data { get; set; }
public string errMsg { get; set; }
public JArray errFieldMsg { get; set; }
@@ -0,0 +1,50 @@
using Newtonsoft.Json;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using UnityEngine;
namespace Assets.Scripts.Apis
{
public class PfHttpClientHandler: HttpClientHandler
{
protected async override Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request, CancellationToken cancellationToken)
{
var response = await base.SendAsync(request, cancellationToken).ConfigureAwait(false);
//{"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);
if (json.code == 401)
{
App.is401 = json.errMsg;
UIManager.Instance.StartCoroutine(LoadLogin(json.errMsg));
}
}
else
{
App.is401 = null;
}
return response;
}
private T ParseJson<T>(string result)
{
return JsonConvert.DeserializeObject<T>(result, new JsonSerializerSettings
{
DateTimeZoneHandling = DateTimeZoneHandling.Local
});
}
IEnumerator LoadLogin(string msg)
{
UnityEngine.SceneManagement.SceneManager.LoadScene(0);
yield return null;
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: be40636e05636c34690e1a893df3c22a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: