A API da Web do ASP.NET não pode obter o POST HTTP do aplicativo / x-www-form-urlencoded
Eu sou novo na web-API. Desejo receber dados HTTP POST usando web-api. O tipo de conteúdo éapplication/x-www-form-urlencoded
, e o corpo da solicitação é como:
data={"mac":"0004ED123456","model":"SG6200NXL"}
(Formato JSON).
Meu controlador é assim:
public void Post([FromBody]string formData)
{
data.Add(formData);
}
Mas formData é sempre nulo. Somente quando eu altero o corpo da solicitação para:
={"mac":"0004ED123456","model":"SG6200NXL"}
Eu posso encontrar{"mac":"0004ED123456","model":"SG6200NXL"}
foi salvo na minhaformData
corda.
Então, minha pergunta é como devo receber os dados com o formato:
data={"mac":"0004ED123456","model":"SG6200NXL"}
?
E existe uma maneira fácil de dessalinizar o JSON em c #?
Obrigado pela ajuda!
ATUALIZAÇÃO: Tentei usar o modelo, mas ainda não funcionou para mim. Meu modelo é:
public class Device
{
public string mac { get; set; }
public string model { get; set; }
}
e minha solicitação HTTP POST é:
cabeçalho:
User-Agent: Fiddler
Content-type: application/x-www-form-urlencoded
Host: localhost:52154
Content-Length: 46
corpo:
data={"mac":"0004ED123456","model":"SG6200NX"}
Eu tenho que usarContent-type: application/x-www-form-urlencoded
até onde eu sei, porque o HTTP POST é enviado por um roteador. Meu trabalho é receber os dados.