用C#中的HttpClient发送JSON对象

本文关键字:JSON 对象 发送 HttpClient 中的 | 更新日期: 2023-09-27 17:59:12

好吧,我知道HttpClient.SendAsync()可以用来发送HttpRequestMessage,对于简单的字符串,请求方法可以设置为POST,内容可以设置为StringContent。。。但在我的情况下,我想发送一个更复杂的JSON字符串,看起来像这个

{
  "requests": [
    {
      "image": {
        "content": ""
      },
      "features": [
        {
          "type": "UNSPECIFIED",
          "maxResults": 50
        }
      ]
    }
  ]
}

我尝试使用JavaScriptSerializer,但不知道如何创建一个表示这种json的对象。

await Browser.SendAsync(new HttpRequestMessage
{
    RequestUri = new Uri("http://127.0.0.1/"),
    Method = HttpMethod.Post,
    Content = new StringContent(new JavaScriptSerializer().Serialize())
});

用C#中的HttpClient发送JSON对象

如果您想要此对象的C#代码,请使用RootObject类

public class Image
{
    public string content { get; set; }
}
public class Feature
{
    public string type { get; set; }
    public int maxResults { get; set; }
}
public class Request
{
    public Image image { get; set; }
    public List<Feature> features { get; set; }
}
public class RootObject
{
    public List<Request> requests { get; set; }
}

由提供http://json2csharp.com/

将类创建为@x。。。在评论中指出,以便构建您的树

public class features
{
   public string type {get;set;}
   public int maxResults {get;set;}
}
public class requests 
{
   public List<features> {get;set;}
   ... the same for images
}

填充它,序列化它并发送请求。。。