¿Cómo paso un objeto a HttpClient.PostAsync y lo serializo como un cuerpo JSON?
Estoy usandoSystem.Net.Http
Encontré varios ejemplos en la web. Logré crear este código para hacer unPOST
solicitud:
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;
}
}
Todo funciona bien. Pero supongamos que quiero pasar un tercer parámetro alPOST
método, un parámetro llamadodata
. El parámetro de datos es un objeto como este:
object data = new
{
name = "Foo",
category = "article"
};
¿Cómo puedo hacer eso sin crear elKeyValuePair
? Mi phpRestAPI
espere una entrada json, entonces elFormUrlEncodedContent
debería enviar elraw
json correctamente. ¿Pero cómo puedo hacer esto conMicrosoft.Net.Http
? Gracias.