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

C#调用SQL Database REST API添加JSON请求体的技术问询

回答

首先明确:你必须包含properties根节点——这个结构是SQL Database REST API明确要求的请求体格式,缺少它的话API会返回400 Bad Request错误,无法正常创建/更新防火墙规则。

接下来给你两种在C#里生成符合要求的JSON并嵌入请求体的实现方式,选哪种都可以:

方法1:用匿名类型快速实现(适合简单场景)

这种方式不需要额外定义类,直接用匿名对象嵌套生成结构,再序列化JSON:

using Newtonsoft.Json; // 如果用Newtonsoft.Json,需要先安装对应NuGet包
// 或者用System.Text.Json(.NET Core/.NET 5+自带,无需额外安装)

// 1. 构建符合API要求的嵌套结构
var firewallRulePayload = new
{
    properties = new
    {
        startIpAddress = "0.0.0.3",
        endIpAddress = "0.0.0.3"
    }
};

// 2. 序列化为JSON字符串
string jsonBody = JsonConvert.SerializeObject(firewallRulePayload);
// 如果你用System.Text.Json,替换成:
// string jsonBody = System.Text.Json.JsonSerializer.Serialize(firewallRulePayload);

// 3. 写入请求体(补全你的代码片段)
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
    // 别忘了设置请求的Content-Type,否则API无法正确解析JSON
    httpWebRequest.ContentType = "application/json";
    streamWriter.Write(jsonBody);
    streamWriter.Flush();
}

方法2:用强类型类实现(更规范,适合复杂场景/后续扩展)

如果后续需要修改规则结构、添加更多字段,强类型类会更易维护,也能避免拼写错误:

// 先定义对应JSON结构的类
public class FirewallRuleRequest
{
    public FirewallRuleProperties properties { get; set; }
}

public class FirewallRuleProperties
{
    public string startIpAddress { get; set; }
    public string endIpAddress { get; set; }
}

// 然后实例化并序列化
var requestPayload = new FirewallRuleRequest
{
    properties = new FirewallRuleProperties
    {
        startIpAddress = "0.0.0.3",
        endIpAddress = "0.0.0.3"
    }
};

string jsonBody = JsonConvert.SerializeObject(requestPayload);
// 同样可以替换为System.Text.Json的序列化方式

// 写入请求体(和方法1的步骤一致)
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
    httpWebRequest.ContentType = "application/json";
    streamWriter.Write(jsonBody);
    streamWriter.Flush();
}

关键注意点

  • 一定要设置httpWebRequest.ContentType = "application/json",告诉API你发送的是JSON格式的请求体;
  • 确保序列化后的JSON字段名和API要求完全一致(比如startIpAddress是小驼峰格式,你的类/匿名对象字段名要对应,不能写错大小写)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:25:54