示例#1
0
    private IEnumerator MakeRequestEnumerator(string method, string url, Dictionary <string, object> data, Everyplay.RequestReadyDelegate readyDelegate, Everyplay.RequestFailedDelegate failedDelegate)
    {
        if (data == null)
        {
            data = new Dictionary <string, object>();
        }

        if (url.IndexOf("http") != 0)
        {
            if (url.IndexOf("/") != 0)
            {
                url = "/" + url;
            }

            url = "https://api.everyplay.com" + url;
        }

        method = method.ToLower();

#if UNITY_3_5 || UNITY_4_0 || UNITY_4_0_1 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3
        Hashtable headers = new Hashtable();
#else
        Dictionary <string, string> headers = new Dictionary <string, string>();
#endif

        string accessToken = AccessToken();
        if (accessToken != null)
        {
            headers["Authorization"] = "Bearer " + accessToken;
        }
        else
        {
            if (url.IndexOf("client_id") == -1)
            {
                if (url.IndexOf("?") == -1)
                {
                    url += "?";
                }
                else
                {
                    url += "&";
                }
                url += "client_id=" + clientId;
            }
        }

        data.Add("_method", method);

        string dataString = Json.Serialize(data);
        byte[] dataArray  = System.Text.Encoding.UTF8.GetBytes(dataString);

        headers["Accept"]         = "application/json";
        headers["Content-Type"]   = "application/json";
        headers["Data-Type"]      = "json";
        headers["Content-Length"] = dataArray.Length.ToString();

        WWW www = new WWW(url, dataArray, headers);

        yield return(www);

        if (!string.IsNullOrEmpty(www.error) && failedDelegate != null)
        {
            failedDelegate("Everyplay error: " + www.error);
        }
        else if (string.IsNullOrEmpty(www.error) && readyDelegate != null)
        {
            readyDelegate(www.text);
        }
    }
示例#2
0
 public static void MakeRequest(string method, string url, Dictionary <string, object> data, Everyplay.RequestReadyDelegate readyDelegate, Everyplay.RequestFailedDelegate failedDelegate)
 {
     if (EveryplayInstance != null)
     {
         EveryplayInstance.AsyncMakeRequest(method, url, data, readyDelegate, failedDelegate);
     }
 }
示例#3
0
    // Private instance methods

    private void AsyncMakeRequest(string method, string url, Dictionary <string, object> data, Everyplay.RequestReadyDelegate readyDelegate, Everyplay.RequestFailedDelegate failedDelegate)
    {
        StartCoroutine(MakeRequestEnumerator(method, url, data, readyDelegate, failedDelegate));
    }
示例#4
0
 public void MakeRequest(string method, string url, Dictionary <string, object> data, Everyplay.RequestReadyDelegate readyDelegate, Everyplay.RequestFailedDelegate failedDelegate)
 {
     Everyplay.MakeRequest(method, url, data, readyDelegate, failedDelegate);
 }