Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

KeyValuePair API

Eu tenho um objeto, e desejo passar ele para uma api atreves do metodo "POST", atualmente eu uso "KeyValuePair", Atributo por atributo, sendo que eu tenho o objetoJson não existe uma forma de eu passar o objeto diretamente pra api?

3 respostas

Boa noite, meu xará! Como vai?

Se no seu código vc já tem um objeto JavaScript com as informações que vc quer passar para a API, então basta que vc crie um JSON a partir do método JSON.stringify() da seguinte forma:

const objetoJS = {
     chave1: 'valor 1',
     chave2: 'valor 2',
     chave3: 'valor 3',
     chave4: 4
};

const json = JSON.stringify(objetoJS);

Feito isso, basta enviar o conteúdo da constante json criada na última linha do código.

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Eu esqueci de falar que estou usando xamarin (c#) o metodo que estou criando é esse

 public async Task POSTContaClienteItem(ContaClienteItem contaClienteItem)
        {
            using (var cliente = new HttpClient())
            {
                var camposFormulario = new FormUrlEncodedContent(new[]
                           {
                           new KeyValuePair<string, string>("COI_Quantidade", Convert.ToString(contaClienteItem.Produto.Quantidade)),
                           new KeyValuePair<string, string>("COI_PRD_IdProduto", Convert.ToString(contaClienteItem.Produto.Id)),
                           new KeyValuePair<string, string>("COI_COC_IdContaCliente", Convert.ToString(contaClienteItem.ContaCliente.Id)),
                           new KeyValuePair<string, string>("COI_DataCadastro", Convert.ToString(DateTime.Now))
                    });
                HttpResponseMessage resultado = null;
                cliente.BaseAddress = new Uri("http://192.168.0.37:64750/api/CONTA_CLIENTE_ITEM");
                try
                {
                    resultado = await cliente.PostAsync("", camposFormulario);
                }
                catch
                {
                    MessagingCenter.Send<serverCOIExeption>(new serverCOIExeption("Erro de comunicação com o servidor"), "falhaPostContaClienteItem");
                }
                if (resultado.IsSuccessStatusCode)//Sucesso na autenticação
                {
                    var conteudoResultado = await resultado.Content.ReadAsStringAsync(); //Ler o resultado http em string
                   // var resultadoConversao = JsonConvert.DeserializeObject<ResultadoLogin>(conteudoResultado);

                    //MessagingCenter.Send<Usuario>(resultadoConversao.usuario, "SucessoLogin");
                }

            }
        }
solução!

Opa, Gabriel!

sendo que eu tenho o objetoJson...

Quando vc diz que já tem um objeto json se refere ContaClienteItem contaClienteItem que vc está recebendo como parâmetro? Ou à uma string que representa os dados que vc quer enviar?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software