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

调用CQC位置变更接口HttpGet路由写法错误返回404,如何修正?

问题诊断
  • 参数绑定逻辑错误:目标CQC接口的page/perPage/startTimestamp/endTimestamp均为查询参数,需要跟在接口路径后以?开头、&分隔,不属于路由路径的一部分。你的代码将参数写进了路由模板,还添加了[FromRoute]注解,最终拼接出的路径不符合接口要求,触发404资源不存在错误。
  • 路由模板书写错误:接口固定路径为changes/location,你额外将参数占位符拼接在路径后,导致实际请求路径与目标接口路径完全不匹配。
  • 时间格式不匹配:你请求时传入的是本地化时间格式9/20/2021 8:57:53 AM,但接口要求使用ISO 8601标准的UTC时间格式(如2021-09-18T02:33:20Z),即使路由正确也会触发参数校验失败。
修正方案

1. 调整控制器接口写法

移除路由中的参数占位符,将参数绑定改为从查询字符串读取:

[HttpGet("changes/location")]
public async Task<ChangesDetailsVM> GetChange(
    [FromQuery] int page, 
    [FromQuery] int perPage,  
    [FromQuery] DateTimeOffset startTimestamp, 
    [FromQuery] DateTimeOffset endTimestamp)
{
    return await _cqcService.GetChange(page, perPage, startTimestamp, endTimestamp);
}

2. 调整请求调用格式

Postman请求时按照如下规则拼接地址即可:

[你的服务根地址]/cqc/changes/location?page=1&perPage=1000&startTimestamp=2021-09-20T08:57:53Z&endTimestamp=2021-09-21T08:57:53Z

3. 下层服务调用注意事项

_cqcService中调用第三方CQC接口时,同样需要将参数拼接为查询字符串,不要拼接到路由路径中,可使用QueryHelpers类自动处理参数拼接,避免格式错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:39:00