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

Swagger UI提交form data时Content-Type为undefined如何解决?

解决Swagger UI提交form data时Content-Type为undefined的问题

你遇到的问题核心是Swagger定义里缺少了consumes字段的正确配置,这才导致Swagger UI无法确定该用什么Content-Type发送form data请求。JSON请求能正常工作是因为后端通常默认支持application/json,但form data需要明确声明支持的媒体类型。

下面是具体的修复步骤:

1. 补充consumes字段

你的POST接口定义里consumes是空数组,这会让Swagger UI找不到请求的Content-Type依据。你需要根据表单类型添加对应的媒体类型:

  • 若为普通表单(无文件上传),添加application/x-www-form-urlencoded
  • 若为包含文件上传的表单,添加multipart/form-data

2. 修正参数的required值

你提供的代码里required字段后面是fal...,记得补全为true或false,保证Swagger定义的语法正确性。

修复后的完整API定义示例

{
  "swagger": "2.0",
  "info": {
    "version": "V1",
    "title": "Title"
  },
  "paths": {
    "/api/getcalculation": {
      "post": {
        "tags": [
          "ArrearsOfPay"
        ],
        "operationId": "ApiArrearsOfPayPost",
        // 添加对应的consumes类型
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "InsolvencyDate",
            "in": "formData",
            "required": false, // 补全正确的布尔值
            "type": "string", // Swagger 2.0要求formData参数必须指定类型
            "format": "date" // 如果是日期类型,可添加format约束
          }
          // 其他formData参数可在此继续添加
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              // 你的响应结构定义
            }
          }
        }
      }
    }
  }
}

额外注意事项

  • 若需要同时支持多种表单类型,可在consumes数组中添加多个值,比如["application/x-www-form-urlencoded", "multipart/form-data"]
  • Swagger 2.0规则中,使用formData参数的接口不能同时使用body参数,二者只能二选一

修改完成后重新加载Swagger UI,就能正常识别Content-Type并发送form data请求了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:58:08