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;
|
}
|
|
}
|