暂存
This commit is contained in:
1 parent
558fb16160
commit
f92b623349
14 files changed
+696
-597
No files matched your search
@@ -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();
|
||||
|
||||
@@ -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:
|
||||
Reference in new issue
Block a user