C# httpwebrequest - 使用系统库创建 json 主体

Posted

技术标签:

【中文标题】C# httpwebrequest - 使用系统库创建 json 主体【英文标题】:C# httpwebrequest - create json body with system library 【发布时间】:2022-01-06 05:50:47 【问题描述】:

是否可以使用系统库为 HttpWebRequest 创建 json 主体?我尝试了类似以下的方法,但它不起作用 - 我认为缺少一些东西:

string json = "\"Datum\":\"" + sDateTime + "\"," +
                                    "\"ATZ\":\"1\"," +
                                    "\"PZN\":\"2\"," +
                                    "\"Product\":\"3\"," +
                                    "\"Dose\":\"4\"," +
                                    "\"Unit\":\"5\"," +
                                    "\"End\":\"6\"";

【问题讨论】:

看看这里docs.microsoft.com/en-us/dotnet/api/… 这应该会给你一个更好的处理方式 请不要尝试像这样手动生成 JSON。您应该使用专用模型类或匿名类型并使用 JSON 序列化 - .Net Core 3+ 上的 Json.net 或 System.Text 您尝试使用的服务是否有 swagger 文档? (openapi 规范文档)。 AutoRest 和 NSwag 等工具会使用它并生成大量针对调用 API 函数而优化的 C# 代码。编写等效的质量/实用程序代码需要人类几天的时间 【参考方案1】:

你可以使用 System.Text.Json

例子:

  public class Data 
    public DateTime Datum  get; set; 
    public string Atz  get; set; 
  

  var data = new Data() 
    Datum = DateTime.Now,
    Atz = "1"
  ;

  var jsonObject = System.Text.Json.JsonSerializer.Serialize(data);

jsonObject 将包含 '"Datum":"2021-11-29T14:56:00.5436035+02:00","Atz":"1"'

阅读更多 - JSON serialization and deserialization (marshalling and unmarshalling) in .NET - overview

【讨论】:

以上是关于C# httpwebrequest - 使用系统库创建 json 主体的主要内容,如果未能解决你的问题,请参考以下文章

C#多线程环境下调用 HttpWebRequest 并发连接限制

如何使用 c# 使用 httpwebrequest 从 json api 获取数据?

C# 使用 HTTPWebRequest 拉取网页并从站点执行 javascript

C# httpwebrequest 和 javascript

使用 C# 和 HttpWebRequest 向端点发送 POST 请求

要在 C# 中使用 RESTful Web 服务,我应该使用 HttpWebRequest 吗?