public void AddRoute(string method, string url, WebRequestDelegate action) { routes.Add(new Route(url, method, action)); }
public Route(string url, string method, WebRequestDelegate action) { this.url = url; this.method = method; this.action = action; }
public static IEnumerator WebRequest(string appKey, string host, string path, float timeout, string jsonRequest, WebRequestDelegate callback) { var uriBuilder = new UriBuilder("https", host) { Path = path }; bool isTimeout = false; string errorString = ""; string jsonString = ""; #if UNITY_2017_2_OR_NEWER if (string.IsNullOrEmpty(jsonRequest)) { using (var request = UnityWebRequest.Get(uriBuilder.Uri.ToString())) { request.timeout = System.Convert.ToInt32(timeout); request.SetRequestHeader("Content-Type", "application/json"); request.SetRequestHeader("X-NHN-TCIAP-AppKey", appKey); yield return(request.SendWebRequest()); errorString = request.error; if (request.isNetworkError || request.isHttpError) { isTimeout = true; } else { jsonString = request.downloadHandler.text; } } } else { var downloadHandler = new DownloadHandlerBuffer(); var uploadHandler = new UploadHandlerRaw(System.Text.Encoding.UTF8.GetBytes(jsonRequest)); using (var request = new UnityWebRequest(uriBuilder.Uri.ToString(), UnityWebRequest.kHttpVerbPOST, downloadHandler, uploadHandler)) { request.timeout = System.Convert.ToInt32(timeout); request.SetRequestHeader("Content-Type", "application/json"); request.SetRequestHeader("X-NHN-TCIAP-AppKey", appKey); yield return(request.SendWebRequest()); errorString = request.error; if (request.isNetworkError || request.isHttpError) { isTimeout = true; } else { jsonString = request.downloadHandler.text; } } } #else float timer = 0; Dictionary <string, string> header = new Dictionary <string, string>(); header.Add("Content-Type", "application/json"); header.Add("X-NHN-TCIAP-AppKey", appKey); using (WWW www = new WWW(uriBuilder.Uri.ToString(), System.Text.Encoding.UTF8.GetBytes(jsonRequest), header)) { do { if (timer > timeout) { isTimeout = true; break; } timer += Time.deltaTime; yield return(null); }while (!www.isDone); if (isTimeout) { www.Dispose(); } else { errorString = www.error; jsonString = www.text; } } #endif // UNITY_2017_2_OR_NEWER callback(isTimeout, errorString, jsonString); }