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

Google Cloud Scheduler调用ASP.NET Core Web API报415错误求助

问题解答

1. 能否查看Google发送的HTTP请求原始日志?

  • 可以通过Google Cloud Logging查看:
    • 进入Cloud Scheduler的任务详情页,点击「查看日志」;
    • 在日志过滤器中添加resource.type="cloud_scheduler_job"并匹配你的任务ID,就能看到Cloud Scheduler发送请求的完整元数据,包括请求头、请求体、响应状态码等细节。
  • 同时可在ASP.NET Core API端开启Debug级别的日志,在appsettings.json中调整配置:
    "Logging": {
      "LogLevel": {
        "Microsoft.AspNetCore": "Debug",
        "Microsoft.AspNetCore.Mvc.ModelBinding": "Debug"
      }
    }
    
    这样能捕获请求到达API后的所有处理步骤,包括模型绑定失败的具体原因。

2. 遗漏的配置及问题原因

返回415 FAILED_PRECONDITION的核心原因是请求媒体类型与API期望不匹配,导致请求在进入控制器方法前就被拦截,因此你写在方法内部的令牌验证代码根本没执行,自然没有日志记录:

  • 你的API控制器方法使用[FromBody] string value,ASP.NET Core默认期望的请求媒体类型是text/plain,或者格式正确的application/json(即字符串需用双引号包裹,比如"sample-content")。
  • Google Cloud Scheduler默认如果未显式设置Content-Type,发送的请求格式会不符合API要求,直接触发415错误,请求无法进入控制器方法。

解决步骤:

  • 编辑Cloud Scheduler任务的HTTP请求配置:
    • 方法一:设置Content-Type为text/plain,请求体填写任意纯文本字符串(无需加引号);
    • 方法二:设置Content-Type为application/json,请求体填写带双引号的字符串(比如"scheduler-test");
  • 建议将令牌验证逻辑移至ASP.NET Core中间件中,而非控制器方法内部,这样即使请求因模型绑定失败被拦截,也能捕获到请求的认证头信息并记录日志。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 13:26:05