예제 #1
0
        private async Task displayAPIInfo(Characters c)
        {
            MarvelCharacter marvelCharacter = await App.MDM.GetCharacterByID(c.MarvelAPIID);

            mainLabel.Text = "You are " + marvelCharacter.Name;
            mainDesc.Text  = marvelCharacter.Description;
        }
        public async Task <MarvelCharacter> GetCharacterByID(int marvelID)
        {
            var ts = Guid.NewGuid().ToString();

            Debug.WriteLine(ts);
            IHashService tempHash = _hashService;

            var hash = _hashService.CreateMd5Hash(ts + _API_PRIVATE_KEY + _API_PUBLIC_KEY);

            MarCharacter = new MarvelCharacter();

            var uri =
                $@"https://gateway.marvel.com/v1/public/characters/{marvelID}?apikey={_API_PUBLIC_KEY}&hash={hash}&ts={ts}";

            /*
             * try
             * {
             *
             *      var response = await _client.GetAsync(uri);
             *      Debug.WriteLine("XXXX: " + response.ToString());
             *      if (response.IsSuccessStatusCode)
             *      {
             *          var content = await response.Content.ReadAsStringAsync();
             *          Debug.WriteLine(content);
             *          MarvelCharacter mc = JsonConvert.DeserializeObject<MarvelCharacter>(content);
             *          Debug.WriteLine(mc);
             *          MarCharacter = mc;
             *      }
             *
             * }
             * catch (Exception ex)
             * {
             *  Debug.WriteLine(@"\tERROR {0}", ex.Message);
             * }
             */

            //var client = new HttpClient();
            var response2 = await _client.GetStringAsync(uri);

            var responseObject = JObject.Parse(response2);

            List <MarvelCharacter> temp = (List <MarvelCharacter>) await Task.Factory.StartNew(() => JsonConvert.DeserializeObject <IEnumerable <MarvelCharacter> >(responseObject["data"]["results"].ToString()));

            Debug.WriteLine(temp.Count);

            return(temp[0]);
        }