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

如何修改ASP.NET Core GET接口支持Postman参数传递解决415错误

问题原因分析
  • 你之前发送带JSON请求体的GET请求时,请求头默认携带了Content-Type: application/json,ASP.NET Core会默认尝试从请求体解析参数,现在切换为查询参数传参后,如果请求还是携带了该请求头且请求体为空,框架无法匹配媒体类型,就会返回415 Unsupported Media Type错误。
  • 控制器方法的模型参数没有显式指定绑定源,框架无法优先从查询字符串读取参数。
解决方案

步骤1:修改控制器方法,显式指定参数绑定来源

给RentReason model参数添加[FromQuery]特性,告诉ASP.NET Core从查询字符串中读取参数绑定到模型:

[HttpGet]
public async Task<IActionResult> getRentReason([FromQuery] RentReason model)
{
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }
    try
    {
        var list = await _request.getRentReason(model);
        return Ok(list);
    }
    catch (Exception ex)
    {
        return BadRequest(ex.Message);
    }
    return Ok();
}

你的业务层方法、接口定义都不需要修改,直接复用原有逻辑即可。

步骤2:调整Postman请求配置

  • 清空GET请求的Body内容
  • 不要手动添加Content-Type: application/json请求头,GET请求不需要该头
  • 直接在Params栏填写参数key为rentreasonId,value为40,或者直接在地址栏拼接?rentreasonId=40即可正常请求。

可选优化:简化参数

如果该接口只需要rentreasonId一个筛选参数,可以直接不用模型传参,简化代码如下:

[HttpGet]
public async Task<IActionResult> getRentReason([FromQuery] string rentreasonId)
{
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }
    try
    {
        var list = await _request.getRentReason(new RentReason { rentreasonId = rentreasonId });
        return Ok(list);
    }
    catch (Exception ex)
    {
        return BadRequest(ex.Message);
    }
    return Ok();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 22:15:01