コード例 #1
0
        // 'Get' methods
        public static List <ApiAvatar> GetPublicAvatars(string uId)
        {
            if (uId == null || !uId.StartsWith("usr_"))
            {
                return(null);
            }

            WebRequest request = WebRequest.Create("https://api.vrchat.cloud/api/1/avatars?apiKey=" + API.ApiKey + "&userId=" + uId + "&order=descending");

            ServicePointManager.ServerCertificateValidationCallback = (System.Object s, X509Certificate c, X509Chain cc, SslPolicyErrors ssl) => true;
            WebResponse response = request.GetResponse();

            string result = "";

            using (Stream rs = response.GetResponseStream())
            {
                using (StreamReader sr = new StreamReader(rs))
                {
                    result = sr.ReadToEnd();
                }
            }
            response.Dispose();

            List <Dictionary <string, dynamic> > list = JsonConvert.DeserializeObject <List <Dictionary <string, dynamic> > >(result);
            List <ApiAvatar> avatarList = new List <ApiAvatar>();

            List <string> listOThings = new List <string>()
            {
                "name", "id", "description", "authorId", "authorName", "imageUrl", "thumbnailImage", "assetUrl"
            };

            foreach (Dictionary <string, dynamic> dAvatar in list)
            {
                ApiAvatar avatar = new ApiAvatar();
                foreach (string key in dAvatar.Keys)
                {
                    if (listOThings.Contains(key))
                    {
                        avatar.WriteField(key, dAvatar[key]);
                    }
                }

                avatarList.Add(avatar);
            }
            return(avatarList);
        }