Używam System.Net.Http
, znalazłem kilka przykładów w Internecie. Udało mi się stworzyć ten kod dokonać POST
żądanie:Jak przekazać obiekt do HttpClient.PostAsync i serializować jako ciało JSON?
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;
}
}
wszystko działa poprawnie. Ale załóżmy, że chcę przekazać trzeci parametr do metody POST
, param o nazwie data
. Param danych jest obiektem tak:
object data = new
{
name = "Foo",
category = "article"
};
jak mogę to zrobić bez tworzenia KeyValuePair
? Mój php RestAPI
czekać na wejście json, więc FormUrlEncodedContent
powinien wysłać poprawnie Json raw
. Ale jak mogę to zrobić z Microsoft.Net.Http
? Dzięki.
Jeśli dobrze rozumiem pytanie, chcesz wysłać zawartość JSON zamiast formie zakodowanej treści prawo (i przez rozszerzenie chcesz, aby twój anonimowy typ był serializowany jako JSON do tej treści)? – CodingGorilla
@CodingGorilla yes to anonimowy typ. – IlDrugo