c#中JSON主体的Post异步请求不工作

c#中JSON主体的Post异步请求不工作,c#,json,post,httpclient,C#,Json,Post,Httpclient,我试图用一些简单的JSON体在c#中完成POST请求。我正在使用HttpClient执行请求。我正在尝试以下几点: using (var httpClient = new HttpClient { BaseAddress = baseAddress }) { httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", cred.

我试图用一些简单的JSON体在c#中完成POST请求。我正在使用HttpClient执行请求。我正在尝试以下几点:

    using (var httpClient = new HttpClient { BaseAddress = baseAddress })
    {
        httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", cred.Access_token);

        var json = JsonConvert.SerializeObject("{'filter' : {'updated_since' : '2020-12-05T13:11:19+00:00'}}");

        var data = new StringContent(json, Encoding.UTF8, "application/json");

        HttpResponseMessage httpResponseMessage = await httpClient.PostAsync("invoices.list", data).ConfigureAwait(false);

        ...
    }
我在JSON字符串中添加了一个简单的过滤器,但是由于过滤器不工作,我得到了所有的结果。当我在《邮递员》中尝试同样的方法时,一切都很顺利。因此,我认为JSON字符串中存在一些问题

邮递员中的JSON:

{
    "filter": {
        "updated_since": "2020-12-05T13:11:19+00:00"
    }
}

我在这里做错了什么吗?

就像@mjwills在评论中说的那样,我没有
序列化一个对象,而是一个字符串

我变了

var json = JsonConvert.SerializeObject("{'filter' : {'updated_since' : '2020-12-05T13:11:19+00:00'}}");


现在一切都正常了。

json
不是你想象的那样。主要是因为您没有序列化对象。您正在序列化字符串。我怀疑您的意思是:
var json=JsonConvert.SerializeObject(new{filter=new{updated_-since=“2020-12-05T13:11:19+00:00”})@mjwills,谢谢!我确实忘记了序列化字符串。它现在像我想要的那样工作。谢谢。
我确实忘记了序列化字符串。
好吧,你序列化了它两次更重要,但是你让它工作起来太棒了。你根本不需要使用序列化,因为你拥有的字符串实际上是有效的JSON,它可以直接传递。
var json = JsonConvert.SerializeObject(new { filter = new { updated_since = "2020-12-05T13:11:19+00:00" }});