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

31/03/2019

8

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?
Responder

Posts

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
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira