Web API ASP .NET MVC - Trabalhando com parâmetros no body da requisição

31/03/2019

0

Olá,

Estou com um problema que não consigo resolver e nem achar nada explicando para sanar minhas dúvidas. Em alguns cursos da DEVMEDIA vi que os professores ensinam a trabalhar com requisições http, usando os parâmetros na URL da requisição, porém quando trabalhamos com certos tipos de requisição, não usamos na URL os parâmetros e sim no corpo da solicitação (body form-data).

Como posso trabalhar dessa forma? Usando parâmetros from-data no body do meu post?

Em um dos cursos que fiz ensinam assim:

public NotesController()
{
client.BaseAddress = new Uri("teste.com.br");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
}

// GET: RoboRCDP
public ActionResult Index()
{
int clienteProjeto = 85;
string token = "inserir_token_aqui";
var oModel = new List<RoboAws.DadosEmpresa>();
string parte1 = "/projeto/api";

HttpResponseMessage servidor =
oBase.GetAsync(string.Format("/auditorias//empresa?token=&listaContatos=", parte1, clienteProjeto, token, false)).Result;

if (servidor.IsSuccessStatusCode)
{
var oEmpresa = servidor.Content.ReadAsAsync<RoboAws.DadosEmpresa>().Result;
}
else
{
TempData["ErroConsultaAPI1"] = servidor.RequestMessage;
return RedirectToAction("About", "Home");
}

Vejam que todos os parâmetros estão sendo passados na URL, eu no caso precisava passar no tipo form-data e no body da requisição. Como faço?
Andrew Marques

Andrew Marques

Responder

Posts

11/09/2019

Stella Oliveira

Olá,

Estou com um problema que não consigo resolver e nem achar nada explicando para sanar minhas dúvidas. Em alguns cursos da DEVMEDIA vi que os professores ensinam a trabalhar com requisições http, usando os parâmetros na URL da requisição, porém quando trabalhamos com certos tipos de requisição, não usamos na URL os parâmetros e sim no corpo da solicitação (body form-data).

Como posso trabalhar dessa forma? Usando parâmetros from-data no body do meu post?

Em um dos cursos que fiz ensinam assim:

public NotesController()
{
client.BaseAddress = new Uri("teste.com.br");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
}

// GET: RoboRCDP
public ActionResult Index()
{
int clienteProjeto = 85;
string token = "inserir_token_aqui";
var oModel = new List<RoboAws.DadosEmpresa>();
string parte1 = "/projeto/api";

HttpResponseMessage servidor =
oBase.GetAsync(string.Format("/auditorias//empresa?token=&listaContatos=", parte1, clienteProjeto, token, false)).Result;

if (servidor.IsSuccessStatusCode)
{
var oEmpresa = servidor.Content.ReadAsAsync<RoboAws.DadosEmpresa>().Result;
}
else
{
TempData["ErroConsultaAPI1"] = servidor.RequestMessage;
return RedirectToAction("About", "Home");
}

Vejam que todos os parâmetros estão sendo passados na URL, eu no caso precisava passar no tipo form-data e no body da requisição. Como faço?



Ei, para usar no body basta fazer da seguinte forma (Exemplo - Post Usuário):


[HttpPost]
        public ActionResult<string> PostUsuario([FromBody] Usuario usuario)
        {
            if (usuario == null)
                return BadRequest("Dados informados inválidos.");

            return Ok("Dados lidos com sucesso !");
        }


No caso o seu JSON tem que vir da seguinte forma no body:

Usuario {
"nome": "Stella Oliveira",
"cpf": "00000000000"
}
Responder

14/09/2019

Rodrigo

Olá,

Estou com um problema que não consigo resolver e nem achar nada explicando para sanar minhas dúvidas. Em alguns cursos da DEVMEDIA vi que os professores ensinam a trabalhar com requisições http, usando os parâmetros na URL da requisição, porém quando trabalhamos com certos tipos de requisição, não usamos na URL os parâmetros e sim no corpo da solicitação (body form-data).

Como posso trabalhar dessa forma? Usando parâmetros from-data no body do meu post?

Em um dos cursos que fiz ensinam assim:

public NotesController()
{
client.BaseAddress = new Uri("teste.com.br");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
}

// GET: RoboRCDP
public ActionResult Index()
{
int clienteProjeto = 85;
string token = "inserir_token_aqui";
var oModel = new List<RoboAws.DadosEmpresa>();
string parte1 = "/projeto/api";

HttpResponseMessage servidor =
oBase.GetAsync(string.Format("/auditorias//empresa?token=&listaContatos=", parte1, clienteProjeto, token, false)).Result;

if (servidor.IsSuccessStatusCode)
{
var oEmpresa = servidor.Content.ReadAsAsync<RoboAws.DadosEmpresa>().Result;
}
else
{
TempData["ErroConsultaAPI1"] = servidor.RequestMessage;
return RedirectToAction("About", "Home");
}

Vejam que todos os parâmetros estão sendo passados na URL, eu no caso precisava passar no tipo form-data e no body da requisição. Como faço?




Tenho um pacotão de ferramentas, hospeda no NuGet.org.
Duas dessas ferramentas pode ser que resolva o seu problema.
Mas antes de instalar você pode ver a documentação em https://abreusolutions.blogspot.com.

RequestApi (Content-Type: "application/json");
RequestApi (Content-Type: "multipart/form-data; boundary=...");

A e o pacotão é totalmente gratuito.
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar