using System.Net.Http.Json;
using System.Threading.Tasks;
public static async Task Main()
var data = new { A = 1, B = "C"};
var handlerMock = new Mock<HttpClientHandler>();
.Setup<Task<HttpResponseMessage>>(
ItExpr.IsAny<HttpRequestMessage>(),
ItExpr.IsAny<CancellationToken>()
.ReturnsAsync((HttpRequestMessage req, CancellationToken ct) => {
var content = (JsonContent)req.Content;
(content.Value == data).Dump();
return new HttpResponseMessage
StatusCode = HttpStatusCode.OK,
Content = new StringContent("{'foo':'bar'}")
var httpClient = new HttpClient(handlerMock.Object);
await httpClient.PostAsJsonAsync("http://google.com", data);