这是我公开记录我的错误,这样如果我或任何人再次犯错,他们就不必花 3 个小时扯头发来试图解决这样一个简单的问题。
语境
我正在从一个 C# MVC ASP.NET 应用程序向另一个应用程序发送一个 HttpRequest。应用程序需要 HTTPS 连接,我们使用 URLRewrite 将 HTTP 请求重定向到 HTTPS url。
一个应用程序正在发送一个带有一些 JSON 数据的 POST 请求,这是非常标准的东西。另一个应用程序设置为使用 MVC 控制器类(分别用于 GET 和 POST 的 CollectionAction 和 Insert 方法)接收此数据。
问题的症状
接收应用程序正在运行 GET 方法 (CollectionAction) 而不是 POST 操作 (ItemAction)。原因是进入应用程序的请求实际上是一个 GET 请求,最重要的是,JSON 数据也丢失了。
我发送了标头“x-http-method”以覆盖从 GET 到 POST 的请求方法(我已经将请求 httpmethod 设置为 POST,但这被忽略了)。这有效,但我仍然没有发送数据。
所以现在我被困住了,因为我可以看到一个包含内容长度和数据的 POST 请求正在发送,并且我有一个没有数据或内容长度的 GET 请求(但标题被保留)