You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

API请求体如何构造?无Swagger时怎么获取.NET接口的请求体结构

未知API请求体结构查询方法
  • 优先抓包验证:在测试环境触发目标API的调用,用Fiddler、Charles或者操作系统自带的网络监控工具抓包,直接提取实际发送的JSON请求体,是准确率最高的方式。如果是本地调试的.NET程序,也可以直接在HTTP请求发送的位置打断点,查看序列化前的入参对象,或者序列化后的最终请求报文内容。
  • 回溯代码入参类型:顺着你已经找到的API调用参数往上找,定位这个参数对应的C#类型定义。如果是用ASP.NET Core自动绑定、或者用Newtonsoft.Json/System.Text.Json做序列化,C#类的属性结构、字段可空性、JsonPropertyName/JsonProperty特性的配置,会直接对应JSON请求体的结构。
  • 复用已知结构验证:你已经有一个参数完全相同的API请求体结构,绝大多数场景下新API的请求体结构和已知的完全一致,可以先拿已知结构在测试环境发起调用验证,只要没有返回400参数错误即可正常使用。
  • 若调用的是封装好的SDK,直接找SDK中对应API方法的入参类型定义,该类型就是JSON序列化的来源,和请求体结构一一对应。
.NET 场景下JSON请求体的常规构造逻辑

这类嵌套结构的JSON请求体,在.NET代码中基本都是先定义对应结构的C#实体类,再把业务数据赋值给实体类对象,最后通过JSON序列化库转换为JSON字符串作为请求体,没有特殊情况不会手动拼接JSON字符串。
对应你给出的请求体结构,代码中的实体类定义参考如下:

// 最外层请求体类
public class AppAssignRequest
{
    public List<ConnectedApp> connectedApps { get; set; }
}

public class ConnectedApp
{
    public string connectedAppId { get; set; }
    public List<ApplicationRole> applicationRoles { get; set; }
}

public class ApplicationRole
{
    public string roleId { get; set; }
    public List<AssignedResource> assignedResources { get; set; }
}

public class AssignedResource
{
    public string resourceType { get; set; }
    public string resourceId { get; set; }
    public string resourceHint { get; set; }
    public List<object> resources { get; set; }
}

实际构造请求时,会逐层给AppAssignRequest类的实例赋值,最后调用JsonSerializer.Serialize(实例)(System.Text.Json库)或者JsonConvert.SerializeObject(实例)(Newtonsoft.Json库)得到最终的JSON请求体,再放入HTTP请求的Body中发送。

内容的提问来源于stack exchange,提问作者Greg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 18:45:00