我有一个API调用另一个API。
以下是我的代码,似乎导致远程服务器上的ModelState.IsValid = false
。
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);
观察被调用的api中的
Post([FromBody]Product product)
,我发现product=null
。改为
Post([FromBody]object product)
也显示null
。从
Postman
调用api可以正常工作。这将我的问题局限于PostAsync
。我的PostAsync
出了什么问题?编辑:
我知道有人可能建议使用
PostAsJsonAsync
,但在我知道PostAsync
的问题之前,我只想尝试一下。:(
model.ToString()
生成的是正确的 JSON 吗?即使是这样,你最好至少使用一个单独的方法,比如ToJsonString
,甚至不要把序列化代码放在那个类里面。 - Eugene Podskalmodel.ToString()
并没有做我想要的事情。将其更改为content: JsonConvert.SerializeObject(model)
可以解决问题。这是可行的方法吗? - rethabile