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

如何从C# Windows应用向.NET Core API POST发送DataSet对象数据?

解决方案

问题根源

你原代码里用的UploadValues方法仅适用于提交NameValueCollection格式的表单数据,但你设置了Content-Type为application/json,格式不匹配;且DataSet无法直接转换为NameValueCollection,这是导致失败的核心原因。


Windows应用端(发送DataSet)

改用HttpClient发送JSON格式的DataSet,步骤如下:

  1. 借助序列化库(Newtonsoft.Json或System.Text.Json)将DataSet转为JSON字符串
  2. 通过HttpClient发送POST请求,把JSON作为请求体传递

代码示例(使用Newtonsoft.Json):

using System.Net.Http;
using System.Text;
using Newtonsoft.Json; // 需要安装Newtonsoft.Json NuGet包

public async Task<string> SubmitRequest(DataSet request)
{
    // 序列化DataSet为JSON
    string jsonData = JsonConvert.SerializeObject(request);
    StringContent content = new StringContent(jsonData, Encoding.UTF8, "application/json");

    using (HttpClient client = new HttpClient())
    {
        HttpResponseMessage response = await client.PostAsync(Url, content);
        response.EnsureSuccessStatusCode();
        return await response.Content.ReadAsStringAsync();
    }
}

如果用.NET自带的System.Text.Json,序列化代码替换为:

string jsonData = System.Text.Json.JsonSerializer.Serialize(request);

.NET Core API端(接收DataSet)

修改接口方法,直接接收DataSet类型参数,ASP.NET Core会自动完成JSON反序列化:

using Microsoft.AspNetCore.Mvc;
using System.Data;

[ApiController]
[Route("api/[controller]")]
public class DataController : ControllerBase
{
    [HttpPost("submit-request")]
    public IActionResult SubmitRequest([FromBody] DataSet values)
    {
        // 处理DataSet逻辑
        if (values == null)
        {
            return BadRequest("DataSet不能为空");
        }

        // 示例处理逻辑
        string result = $"收到{values.Tables.Count}个数据表,第一个表包含{values.Tables[0].Rows.Count}条数据";
        return Ok(result);
    }
}

注意事项

  • 确保两端都引用System.Data程序集(DataSet所在命名空间)
  • 若使用Newtonsoft.Json,API端需安装Microsoft.AspNetCore.Mvc.NewtonsoftJson包,并在Program.cs中配置:
    builder.Services.AddControllers().AddNewtonsoftJson();
    
  • Windows应用的请求Url需对应API的完整路由(例如https://your-api-domain/api/data/submit-request)

内容的提问来源于stack exchange,提问作者Hosam Eldeen Reda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 06:15:40