从 PostAsync 请求中获取空模型
Getting null Model from PostAsync Request
我正在两个微服务之间进行通信。我正在尝试从“UserBookPreference”模型中获取内容。我已经调试过 PostAsync()
请求中发送的内容是正确的(比方说,来自微服务 A 的数据)。当我尝试从微服务 B 中的 Post 方法接收内容时出现问题。我作为参数的模型类型与我从 postAsync 发送的相同。由于我使用的是 .NET 5,因此根据我的研究,JsonContent.Create()
方法是一种很好的方法。我尝试了其他方法,例如使用 StringContent()
方法,但我仍然在微服务 B 中得到空对象。这是我正在使用的代码。
在微服务 A 中:
public async Task<string> AddFavoriteBook(UserBookPreference bookModel)
{
JsonContent content = JsonContent.Create(bookModel);
var response = await httpClient.PostAsync(URLHelper._baseUserPreferencesMicroserviceURL + "/Book", content);
var responseString = await response.Content.ReadAsStringAsync();
return responseString;
}
在微服务 B 中:
[HttpPost("Favorites/Book")]
public IActionResult AddUserFavoriteBook(UserBookPreference bookModel)
{
try
{
_prefService.AddUserBookFavorite(bookModel);
return Ok(bookModel);
}
catch (Exception ex)
{
return BadRequest(new { message = ex.Message });
}
}
感谢您的宝贵时间。
您需要在端点中的 UserBookPreference
之前添加 [FromBody]
属性,或者向控制器添加 [ApiController]
属性以将 UserBookPreference
绑定到传入正文。 docks
我正在两个微服务之间进行通信。我正在尝试从“UserBookPreference”模型中获取内容。我已经调试过 PostAsync()
请求中发送的内容是正确的(比方说,来自微服务 A 的数据)。当我尝试从微服务 B 中的 Post 方法接收内容时出现问题。我作为参数的模型类型与我从 postAsync 发送的相同。由于我使用的是 .NET 5,因此根据我的研究,JsonContent.Create()
方法是一种很好的方法。我尝试了其他方法,例如使用 StringContent()
方法,但我仍然在微服务 B 中得到空对象。这是我正在使用的代码。
在微服务 A 中:
public async Task<string> AddFavoriteBook(UserBookPreference bookModel)
{
JsonContent content = JsonContent.Create(bookModel);
var response = await httpClient.PostAsync(URLHelper._baseUserPreferencesMicroserviceURL + "/Book", content);
var responseString = await response.Content.ReadAsStringAsync();
return responseString;
}
在微服务 B 中:
[HttpPost("Favorites/Book")]
public IActionResult AddUserFavoriteBook(UserBookPreference bookModel)
{
try
{
_prefService.AddUserBookFavorite(bookModel);
return Ok(bookModel);
}
catch (Exception ex)
{
return BadRequest(new { message = ex.Message });
}
}
感谢您的宝贵时间。
您需要在端点中的 UserBookPreference
之前添加 [FromBody]
属性,或者向控制器添加 [ApiController]
属性以将 UserBookPreference
绑定到传入正文。 docks