| | |
| | | public const string defaultHttpContentType = "application/x-www-form-urlencoded"; |
| | | public const string jsonHttpContentType = "application/json ; charset=utf-8"; |
| | | |
| | | public void RequestHttpPost(string _url, IDictionary<string, string> _parameters, string _contentType, int _retry = 3, Action<bool, string> _result = null) |
| | | public async void RequestHttpPost(string _url, IDictionary<string, string> _parameters, string _contentType, int _retry = 3, Action<bool, string> _result = null) |
| | | { |
| | | var content = HashtablaToString(_parameters); |
| | | HttpBehaviour.Create(_url, "POST", content, _contentType, _retry, _result); |
| | | var task = HttpBehaviour.CreateAsync(_url, "POST", content, _contentType, _retry, _result); |
| | | task.Forget(); |
| | | } |
| | | |
| | | public void RequestHttpPost(string _url, string _content, string _contentType, int _retry = 3, Action<bool, string> _result = null) |
| | | public async void RequestHttpPost(string _url, string _content, string _contentType, int _retry = 3, Action<bool, string> _result = null) |
| | | { |
| | | HttpBehaviour.Create(_url, "POST", _content, _contentType, _retry, _result); |
| | | var task = HttpBehaviour.CreateAsync(_url, "POST", _content, _contentType, _retry, _result); |
| | | task.Forget(); |
| | | } |
| | | |
| | | public void RequestHttpGet(string _url, string _contentType, int _retry = 3, Action<bool, string> _result = null) |
| | | public async void RequestHttpGet(string _url, string _contentType, int _retry = 3, Action<bool, string> _result = null) |
| | | { |
| | | HttpBehaviour.Create(_url, "GET", "", _contentType, _retry, _result); |
| | | var task = HttpBehaviour.CreateAsync(_url, "GET", "", _contentType, _retry, _result); |
| | | task.Forget(); |
| | | } |
| | | |
| | | public async UniTask<(bool ok, string message)> UnityWebRequestGetAsync(string _url, string _contentType, int _retry = 3, Action<bool, string> _result = null) |
| | | { |
| | | return await HttpBehaviour.CreateAsync(_url, "GET", "", _contentType, _retry, _result); |
| | | } |
| | | |
| | | //2024-09-26 HttpWebRequest Get CDN资源在某些节日可能无法访问 包含keepalive的设定等不同情况 改用UnityWebRequest |
| | | //获取CDN资源不建议使用HttpWebRequest |
| | | public void UnityWebRequestGet(string _url, int timeout = 5, Action<bool, string> _result = null) |
| | | public async UniTask<(bool ok, string message)> UnityWebRequestGet(string _url, int timeout = 5, Action<bool, string> _result = null) |
| | | { |
| | | StartCoroutine(GetDataB(_url, timeout, _result)); |
| | | return await GetDataAsync(_url, timeout, _result); |
| | | } |
| | | |
| | | IEnumerator GetDataB(string remoteURL, int timeout, Action<bool, string> _result = null) |
| | | private static async UniTask<(bool ok, string message)> GetDataAsync(string remoteURL, int timeout, Action<bool, string> _result = null) |
| | | { |
| | | UnityWebRequest request = UnityWebRequest.Get(remoteURL); |
| | | request.timeout = timeout; |
| | | yield return request.SendWebRequest(); |
| | | |
| | | if (request.isDone) |
| | | using (UnityWebRequest request = UnityWebRequest.Get(remoteURL)) |
| | | { |
| | | if (request.result == UnityWebRequest.Result.Success) |
| | | { |
| | | _result(true, request.downloadHandler.text); |
| | | } |
| | | else |
| | | { |
| | | _result(false, request.result.ToString()); |
| | | } |
| | | request.timeout = timeout; |
| | | await request.SendWebRequest(); |
| | | |
| | | var ok = request.result == UnityWebRequest.Result.Success; |
| | | var message = ok ? request.downloadHandler.text : request.error; |
| | | _result?.Invoke(ok, message); |
| | | return (ok, message); |
| | | } |
| | | } |
| | | |