Como passar um objeto para HttpClient.PostAsync e serializar como um corpo JSON?
estou a usarSystem.Net.Http
, Encontrei vários exemplos na web. Eu consegui criar esse código para fazer umaPOST
solicitação:
public static string POST(string resource, string token)
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(baseUri);
client.DefaultRequestHeaders.Add("token", token);
var content = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("", "")
});
var result = client.PostAsync("", content).Result;
string resultContent = result.Content.ReadAsStringAsync().Result;
return resultContent;
}
}
tudo funcionando bem. Mas suponha que eu queira passar um terceiro parâmetro para oPOST
método, um parâmetro chamadodata
. O parâmetro de dados é um objeto como este:
object data = new
{
name = "Foo",
category = "article"
};
como posso fazer isso sem criar oKeyValuePair
? Meu phpRestAPI
aguarde uma entrada json, para que oFormUrlEncodedContent
deve enviar oraw
json corretamente. Mas como posso fazer isso comMicrosoft.Net.Http
? Obrigado.