public async Task ComprarAsync(Rotativo rotativo) { TextView textViewResultado = FindViewById <TextView>(Resource.Id.textViewResultado); //O objeto Rotativo vem para aqui. No código acima ele pega o que tem no textview de resultado. try { string url = "http://rotativo.azurewebsites.net/api/Rotativo/Comprar"; //coloca a uri para chamar o serviço. igual no postman ok var uri = new Uri(url); //essa uri não precisa ser formatada já q não tem parametros var json = JsonConvert.SerializeObject(rotativo); //Aqui ele já converte o objeto rotativo em json pra poder comunicar com o serviço var content = new StringContent(json, Encoding.UTF8, "application/json"); //Prepara o objeto para a chamada do metodo do serviço HttpClient client = new HttpClient(); HttpResponseMessage response = await client.PostAsync(uri, content);//Chama o método passando a uri e o rotativo por parametro. O rotativo que veio nos parametros desse método async //Ele faz dessa forma para ter segurança com os dados enviados, já que não são enviados na url. var result = await response.Content.ReadAsStringAsync(); //pego o resultado que veio da chamada, igual no postman. Ele vem em json. Mensagem mensagem = JsonConvert.DeserializeObject <Mensagem>(result); //Converto json para mensagem textViewResultado.Text = response.IsSuccessStatusCode ? mensagem.descricao : "Ops! Erro " + response.StatusCode; //Se tudo deu certo, ele exibe os dados em json q vieram da chamada, senão ele exibe q deu erro } catch (Exception ex) { textViewResultado.Text = "Ops! " + ex.Message + (ex.InnerException == null ? ex.InnerException.Message : String.Empty); } }
public async Task RenovarAsync(Rotativo rotativo) { TextView textViewResultado = FindViewById <TextView>(Resource.Id.textViewResultado); try { string url = "http://rotativo.azurewebsites.net/api/Rotativo/Renovar"; //aqui como no postman voce coloca renovar na url, mas os dados são enviados no corpo var uri = new Uri(url); // aqui ele está apenas criando um objeto uri para receber os dados do corpo var json = JsonConvert.SerializeObject(rotativo); // Nesse aki ele vai serializar o objeto, ele transforma o objeto rotativo num json var content = new StringContent(json, Encoding.UTF8, "application/json"); // aqui ele converte o arquivo que já está json mas o vs não reconhece HttpClient client = new HttpClient(); //Esse objeto aí é usado pra fazer o chamado por HTTP entendi HttpResponseMessage response = await client.PutAsync(uri, content); // Aqui ele tá chamando o método, passando a URI e o ojbeto rotativo por parametro var result = await response.Content.ReadAsStringAsync(); // aqui que ele exibe o resultado Mensagem mensagem = JsonConvert.DeserializeObject <Mensagem>(result); //Ele converte json em um ojbeto mensagem textViewResultado.Text = response.IsSuccessStatusCode ? mensagem.descricao : "Ops! Erro " + response.StatusCode; } catch (Exception ex) { textViewResultado.Text = "Ops! " + ex.Message + (ex.InnerException == null ? ex.InnerException.Message : String.Empty); } }