public IEnumerator Send(IHttpRequest request, Action <IHttpResponse, Error> callback, int timeoutMs) { UnityWebRequest unityWebRequest = request.GetUnityWebRequest(); unityWebRequest.timeout = timeoutMs / 1000; Report.GetHttpRequest(request, unityWebRequest); yield return(unityWebRequest.SendWebRequest()); Report.GetHttpResponse(unityWebRequest); #if UNITY_2020_3_OR_NEWER switch (unityWebRequest.result) { case UnityWebRequest.Result.Success: case UnityWebRequest.Result.ProtocolError: case UnityWebRequest.Result.DataProcessingError: callback?.Invoke(unityWebRequest.GetHttpResponse(), null); break; case UnityWebRequest.Result.ConnectionError: callback?.Invoke(null, new Error(ErrorCode.NetworkError)); break; } #else if (unityWebRequest.isNetworkError) { callback?.Invoke(null, new Error(ErrorCode.NetworkError)); } else { callback?.Invoke(unityWebRequest.GetHttpResponse(), null); } #endif }