示例#1
0
    // ============================

    // coroutine: save the user profile
    IEnumerator saveUser(string username, User user)
    {
        saving = true;
        string oldName = user.Name;

        user.Name = username; // update user

        // do the request
        var headers = new Dictionary <string, string>();

        headers["Content-Type"] = "application/json";
        WWW www = new WWW(WebCs.UsersUrl(), FileCs.DefaultEncoding.GetBytes(user.ToJson()), headers);

        yield return(www);

        // check result
        saving = false;
        if (www.error != null)
        {
            user.Name = oldName; // revert
            Debug.Log(www.error);
            StatusText.text = "Error saving user : "******"Saved.";
        }
    }
    // =================================================

    // coroutine: load the list of profiles from the server
    IEnumerator getUsersList(Action <string> complete)
    {
        WWW www = new WWW(WebCs.UsersUrl("all"));

        yield return(www);

        if (www.error != null)
        {
            complete(www.error);
        }
        else
        {
            try
            {
                usernames = JsonConvert.DeserializeObject <List <Username> >(www.text);
                complete(null);
            }
            catch (Exception e)
            {
                complete(e.Message);
            }
        }
    }
    // =================================================

    // coroutine: get the user profile from its id
    IEnumerator loadUser(string username, Action <User, string> complete)
    {
        WWW www = new WWW(WebCs.UsersUrl(username));

        yield return(www);

        if (www.error != null)
        {
            complete(null, www.error);
        }
        else
        {
            try
            {
                var user = User.FromJson(www.text);
                complete(user, null);
            }
            catch (Exception e)
            {
                Debug.Log(e);
                complete(null, e.Message);
            }
        }
    }