| using System;  | 
| using System.Collections;  | 
| using System.Collections.Generic;  | 
| using System.IO;  | 
| using System.Net;  | 
| using System.Text;  | 
| using UnityEngine;  | 
| using UnityEngine.Networking;  | 
|   | 
|   | 
| public class HttpRequest : SingletonMonobehaviour<HttpRequest>  | 
|   | 
| {  | 
|     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)  | 
|     {  | 
|         var content = HashtablaToString(_parameters);  | 
|         HttpBehaviour.Create(_url, "POST", content, _contentType, _retry, _result);  | 
|     }  | 
|   | 
|     public void RequestHttpPost(string _url, string _content, string _contentType, int _retry = 3, Action<bool, string> _result = null)  | 
|     {  | 
|         HttpBehaviour.Create(_url, "POST", _content, _contentType, _retry, _result);  | 
|     }  | 
|   | 
|     public void RequestHttpGet(string _url, string _contentType, int _retry = 3, Action<bool, string> _result = null)  | 
|     {  | 
|         HttpBehaviour.Create(_url, "GET", "", _contentType, _retry, _result);  | 
|     }  | 
|   | 
|     public void UnityWebRequestGet(string _url, int timeout = 5, Action<bool, string> _result = null)  | 
|     {  | 
|         StartCoroutine(GetDataB(_url, timeout, _result));  | 
|     }  | 
|   | 
|     IEnumerator GetDataB(string remoteURL, int timeout, Action<bool, string> _result = null)  | 
|     {  | 
|         UnityWebRequest request = UnityWebRequest.Get(remoteURL);  | 
|         request.timeout = timeout;  | 
|         yield return request.SendWebRequest();  | 
|   | 
|         if (request.isDone)  | 
|         {  | 
|             if (request.result == UnityWebRequest.Result.Success)  | 
|             {  | 
|                 _result(true, request.downloadHandler.text);  | 
|             }  | 
|             else  | 
|             {  | 
|                 _result(false, request.result.ToString());  | 
|             }  | 
|         }  | 
|     }  | 
|   | 
|   | 
|     static StringBuilder buffer = new StringBuilder();  | 
|     public static string HashtablaToString(IDictionary<string, string> parameters)  | 
|     {  | 
|         buffer.Remove(0, buffer.Length);  | 
|         int i = 0;  | 
|         foreach (KeyValuePair<string, string> item in parameters)  | 
|         {  | 
|             if (i > 0)  | 
|             {  | 
|                 buffer.AppendFormat("&{0}={1}", item.Key, item.Value);  | 
|             }  | 
|             else  | 
|             {  | 
|                 buffer.AppendFormat("{0}={1}", item.Key, item.Value);  | 
|             }  | 
|             i++;  | 
|         }  | 
|         string result = buffer.ToString();  | 
|         return result;  | 
|     }  | 
|   | 
| } |