static async void RunAsyncJson(RichTextBox txt) { //Esse método envia uma requisição GET para obter dados de uma API. (Json Placeholder) using (var client = new HttpClient()) { client.BaseAddress = new Uri("https://jsonplaceholder.typicode.com"); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); Console.WriteLine("GET"); HttpResponseMessage response = await client.GetAsync("todos/1"); if (response.IsSuccessStatusCode) { ModeloJson model = await response.Content.ReadAsAsync <ModeloJson>(); Console.WriteLine($"\nGET\n\n{model.userId}\n{model.id}\n{model.title}\n{model.completed}\n"); txt.Text += $"{model.userId}\n{model.id}\n{model.title}\n{model.completed}\n\n"; } else { Console.WriteLine("Deu ruim menó kkkkkkkkkkkkk"); txt.Text = "\nDeu ruim menó kkkkkkkkkkkkk\n"; } } }
static async void RunAsyncJsonPost(RichTextBox txt) { //Esse método insere um item, enviando um JSON através da requisição POST. using (var client = new HttpClient()) { client.BaseAddress = new Uri("https://jsonplaceholder.typicode.com"); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); Console.WriteLine("POST"); ModeloJson model = new ModeloJson() { id = null, userId = 100, title = "titulo", completed = true }; //O Put funciona da mesma forma, mas ele atualiza um item já existente através //de uma requisição PUT. //Requisições PUT te obrigam a colocar todos os dados no JSON, já o PATCH tem a mesma //função, porém permite inserir apenas o que você desejar atualizar, enviando através //de uma requisição PATCH para a API. HttpResponseMessage response = await client.PostAsJsonAsync("posts", model); if (response.IsSuccessStatusCode) { Uri personUrl = response.Headers.Location; Console.WriteLine($"\nPOST\n\n\n {personUrl}"); txt.Text += $"\nPOST\n\n{personUrl}\n\n"; response = await client.PutAsJsonAsync("posts", model); //response = await client.PatchAsync("posts", model); //Requisições DELETE apenas utilizam o URI (endereço) do qual você deseja excluir //por exemplo, para excluir o post com id 2, você passa posts/2 na URI. response = await client.DeleteAsync(personUrl); } else { Console.WriteLine("Deu ruim menó kkkkkkkkkkkkk"); txt.Text = "\nDeu ruim menó kkkkkkkkkkkkk\n"; } } }
/// <summary> /// Carga los errores del modelo y para enviarlos como json /// </summary> /// <param name="ModelState"></param> /// <param name="ejecucionCorrecta"></param> /// <returns></returns> public ModeloJson jsonResult(ModelStateDictionary ModelState,bool? ejecucionCorrecta,object modeloEval) { var modeloError = new ModeloJson(); modeloError.ok = ejecucionCorrecta.HasValue? ejecucionCorrecta.Value : false; if (!modeloError.ok) { List<string> model = new List<string>(); foreach (var resultadoError in ModelState.Values) { foreach (var key in resultadoError.Errors) { model.Add(key.ErrorMessage); } } modeloError.retorno = model; } else { modeloError.retorno = modeloEval; } return modeloError; }