Mam jeden api nazywając inny.HttpClient PostAsync posting null content
i oto mój kod, który wydaje się powodować ModelState.IsValid = false
po drugiej stronie świata.
var baseUri = new Uri("http://localhost:5001/"):
_httpClient.BaseAdress = baseUri;
var data = new StringContent(content: model.Tostring(),
encoding: Encoding.UTF8,
mediaType: "application/json");
var response = await _httpClient.PostAsync("api/product", data);
oglądania Post([FromBody]Product product)
na API nazywany po prostu zobaczyć product=null
.
zmiana na Post([FromBody]object product)
również pokazuje null
.
wywoływanie api z Postman
działa idealnie dobrze. które lokalizują mój problem na PostAsync
. co się dzieje z moim PostAsync
?
Edit:
Wiem, że ludzie mogą sugerować PostAsJsonAsync
, ale będę próbować go dopiero wiem w czym problem z PostAsync
. :(
jesteś pewien, że 'model.ToString()' produkuje właściwego JSON? A nawet jeśli tak jest, lepiej przynajmniej użyć oddzielnej metody, takiej jak 'ToJsonString' lub nawet nie umieszczać kodu serializacji wewnątrz tej klasy. –
W każdym razie bez [MCVE] nie możemy ci wiele pomóc. –
miejsce na @EugenePodskal. 'model.ToString()' nie robił tego, co myślałem, że robi. zmiana na 'content: JsonConvert.SerializeObject (model)' działa. czy to jest droga? –