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

ngrok无法转发Webhook POST请求至本地Web API求助

问题描述

我有一个本地Web API,暴露了接收Webhook调用的POST接口,请求Content-Type为application/x-www-form-urlencoded,代码实现如下:

[Route("api/webhook")]
[ApiController]
public class WebhooksController : ControllerBase
{
   // POST api/values
   [HttpPost]
   [Consumes("application/x-www-form-urlencoded")]
   public void Post([FromForm] Response webHookResponse)
   {
      // these are here only to allow me to create a breakpoint
      int i = 0;
      i = 6;
   }
}

public class Response
{
   [FromForm(Name = "code_id")]
   public string codeId { get; set; }

   [FromForm(Name = "name")]
   public string name { get; set; }

   [FromForm(Name = "address")]
   public string address { get; set; }
}

通过Postman调用该接口可正常返回200 OK并触发断点。为让外部系统调用,我使用命令ngrok http http://localhost:44398启动ngrok转发,Visual Studio已关闭“Enable SSL”选项,外部系统配置的Webhook URL为当前活跃的ngrok域名拼接/api/webhook。外部发送的请求在ngrok控制台可见,但本地代码断点未触发,请问该问题的原因是什么?是否有正确的ngrok使用方式或其他解决办法?

问题排查与解决办法

可能的原因

  • 端口不匹配:本地Web API实际运行的端口可能不是44398。关闭SSL后,Visual Studio可能自动切换到非SSL端口(比如5000、5001或随机端口),ngrok转发端口和实际运行端口不一致,导致请求没抵达本地API。
  • 协议不匹配:即便关闭了Enable SSL,部分项目模板仍可能默认监听HTTPS,ngrok转发HTTP到HTTPS端口会导致请求无法正确传递。
  • 请求格式不符:外部系统发送的请求Content-Type可能不是application/x-www-form-urlencoded,或者参数名和Response类的FromForm注解不匹配,导致API无法匹配到对应Action。
  • 调试状态异常:Web API未处于调试运行状态,或者Visual Studio调试进程未正确附加到API进程。

解决办法

  • 确认实际运行端口:
    启动Web API后,查看Visual Studio输出窗口或浏览器地址栏,确认实际访问端口(如http://localhost:5000),调整ngrok命令为对应端口,例如ngrok http 5000。
  • 修正ngrok转发协议:
    如果本地API仍使用HTTPS,改用ngrok http https://localhost:44398转发;启动ngrok后,检查控制台输出的转发地址,确保外部系统使用的URL正确(如https://xxxx-xx-xx-xx-xx.ngrok.io/api/webhook)。
  • 验证请求正确性:
    通过ngrok控制台查看请求详情,确认Content-Type和参数格式符合要求;将ngrok的URL复制到Postman测试,排查是否是外部系统的请求格式问题。
  • 检查调试状态:
    确保Web API处于调试运行状态(点击了启动调试按钮),若调试异常,重启Visual Studio和Web API后重新附加调试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 20:48:45