c# - 使用 http 而不是 https 时,Azure 函数 POST 解释为 GET
问题描述
我有一个 Azure Functions .NET Core 3.1 端点,我从 Postman 向其发送 POST 命令。当我使用https (SSL)向我的端点发送请求时,一切正常。当我使用http访问同一端点时,传入 HttpRequest 的方法是“GET”而不是“POST”。除了我的函数可以采用 GET 或 POST 方法这一事实之外,我对 host.json 文件没有什么特别之处,这个函数应用程序也没有什么不寻常的地方。这是我的host.json:
{
"version": "2.0"
}
我的任何功能:
[FunctionName("GraphQL")]
public IActionResult Get
(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "graphql")] HttpRequest req,
ILogger log
)
{
// ... req.Method === "GET" here when under only http, even when a POST
}
解决方案
我相信您通过 http 发送的 HTTP 请求可能正在接收 302 响应并因此重定向它。
重定向时,它不会重定向为 POST,而是重定向为 GET,并且您的函数会将其视为 GET。
在您的 Azure Function App 设置/自定义域中,尝试将 HTTPS only 设置为 true 以查看它是否可以解决问题。
推荐阅读
- vmware - DPDK中vmxnet3 PMD中的命令、数据和comp ring是什么
- java - 公共方法中的 LazyInitializationException 标记为 @Transactional 并从另一个 bean 调用
- javascript - 如何将 SVG 的宽度从百分比转换为像素?
- ios - swift uitableview 重复第一个单元格
- r - 有没有办法在 R Markdown 文档的块内的“cat()”函数中执行一些 R 代码?
- android - Firebase Jira 集成错误 - 无法访问 Jira 实例
- c# - 使用 flatbuffers 有效地访问和迭代非原始数组?
- sql - Qt5 - 如何在 qt c++ 应用程序中永久添加 sqlite 数据库
- python - Django 使用独特的约束处理建模 slug mixin
- javascript - 正则表达式中的灾难性反串