示例#1
0
        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);
            }
        }
示例#2
0
        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);
            }
        }