You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.9 KiB
67 lines
1.9 KiB
#if ENABLE_UNITYWEBREQUEST && (!UNITY_2019_1_OR_NEWER || UNITASK_WEBREQUEST_SUPPORT) |
|
|
|
using System; |
|
using System.Collections.Generic; |
|
using UnityEngine.Networking; |
|
|
|
namespace Cysharp.Threading.Tasks |
|
{ |
|
public class UnityWebRequestException : Exception |
|
{ |
|
public UnityWebRequest UnityWebRequest { get; } |
|
#if UNITY_2020_2_OR_NEWER |
|
public UnityWebRequest.Result Result { get; } |
|
#else |
|
public bool IsNetworkError { get; } |
|
public bool IsHttpError { get; } |
|
#endif |
|
public string Error { get; } |
|
public string Text { get; } |
|
public long ResponseCode { get; } |
|
public Dictionary<string, string> ResponseHeaders { get; } |
|
|
|
string msg; |
|
|
|
public UnityWebRequestException(UnityWebRequest unityWebRequest) |
|
{ |
|
this.UnityWebRequest = unityWebRequest; |
|
#if UNITY_2020_2_OR_NEWER |
|
this.Result = unityWebRequest.result; |
|
#else |
|
this.IsNetworkError = unityWebRequest.isNetworkError; |
|
this.IsHttpError = unityWebRequest.isHttpError; |
|
#endif |
|
this.Error = unityWebRequest.error; |
|
this.ResponseCode = unityWebRequest.responseCode; |
|
if (UnityWebRequest.downloadHandler != null) |
|
{ |
|
if (unityWebRequest.downloadHandler is DownloadHandlerBuffer dhb) |
|
{ |
|
this.Text = dhb.text; |
|
} |
|
} |
|
this.ResponseHeaders = unityWebRequest.GetResponseHeaders(); |
|
} |
|
|
|
public override string Message |
|
{ |
|
get |
|
{ |
|
if (msg == null) |
|
{ |
|
if(!string.IsNullOrWhiteSpace(Text)) |
|
{ |
|
msg = Error + Environment.NewLine + Text; |
|
} |
|
else |
|
{ |
|
msg = Error; |
|
} |
|
} |
|
return msg; |
|
} |
|
} |
|
} |
|
} |
|
|
|
#endif |