Estoy usando System.Net.Http
, encontré varios ejemplos en la web. Logré crear este código para hacer una POST
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 al POST
método, un parámetro llamado data
. El parámetro de datos es un objeto como este:
object data = new
{
name = "Foo",
category = "article"
};
¿Cómo puedo hacer eso sin crear el KeyValuePair
? Mi php RestAPI
espera una entrada json, por lo que FormUrlEncodedContent
debería enviar el raw
json correctamente. ¿Pero cómo puedo hacer esto con Microsoft.Net.Http
? Gracias.
fuente
using
paraHttpClient
. aspnetmonsters.com/2016/08/2016-08-27-httpclientwrongusing
qué no se debe utilizar:HttpClient is intended to be instantiated once and reused throughout the life of an application. The following conditions can result in SocketException errors: Creating a new HttpClient instance per request. Server under heavy load. Creating a new HttpClient instance per request can exhaust the available sockets.
docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/…