using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Collections.ObjectModel;
using System.Runtime.Serialization;
using System.ComponentModel;
using System.Globalization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Collections.Specialized;
using System.Web.Routing;
using System.Runtime.InteropServices;
using System.Text.RegularExpressions;
using System.Runtime.Serialization.Formatters;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;
using System.Web.SessionState;
public string Nome { get; set; }
public double Valor { get; set; }
[JsonProperty("ultima_consulta")]
public int UltimaConsulta { get; set; }
public string Fonte { get; set; }
public RootObject() { this.valores = new Dictionary<string, Valores>(); }
public bool status { get; set; }
public Dictionary<string, Valores> valores { get; set; }
public static async Task<RootObject> GetAsync()
using (var client = new WebClient())
client.Headers["User-Agent"] = "something";
var json = await client.DownloadStringTaskAsync(@"http://api.promasters.net.br/cotacao/v1/valores");
var root = JsonConvert.DeserializeObject<RootObject>(json);
public static void Test()
var valores = TestClass.GetAsync().Result;
Console.WriteLine("Downloaded, deserialized and reserialized {0}:", valores);
Console.WriteLine(JsonConvert.SerializeObject(valores, Formatting.Indented));
public static void Main()