【问题标题】:How to identify the HTTP method (verb) used to invoke an Azure Function如何识别用于调用 Azure 函数的 HTTP 方法(动词)
【发布时间】:2017-09-28 11:21:14
【问题描述】:

通过 Azure 门户,我们可以轻松创建函数应用程序。 创建 Function App 后,我们可以向该应用添加功能。

在我的例子中,我从自定义模板中选择 C#、API 和 Webhook,然后选择通用 Webhook C# 模板。

在“集成”菜单中,在 HTTP 标头 标题下,有一个带有 2 个选项的下拉框:所有方法和选定方法。然后我选择Selected Methods,然后可以选择该函数可以支持的HTTP 方法。我希望我的函数支持 GET、PATCH、DELETE、POST 和 PUT。

从 C# run.csx 代码中,我如何知道使用什么方法来调用该方法?我希望能够根据用于调用函数的 HTTP 方法在函数代码中采取不同的操作。

这可能吗?

感谢您的帮助。

【问题讨论】:

    标签: c# azure azure-functions


    【解决方案1】:

    回答我自己的问题...您可以检查 HttpRequestMessage 的 Method 属性,该属性的类型为 HttpMethod

    这是 MSDN 文档:

    HttpRequestMessage.Method 属性

    获取或设置 HTTP 请求消息使用的 HTTP 方法。

    • 命名空间:System.Net.Http
    • 组装:System.Net.Http(在System.Net.Http.dll

    还有一个快速示例:

    #r "Newtonsoft.Json"
    
    using System;
    using System.Net;
    using Newtonsoft.Json;
    
    public static async Task<object> Run(HttpRequestMessage req, TraceWriter log)
    {
        log.Info($"Webhook was triggered!");
    
        if (req.Method == HttpMethod.Post)
        {
            log.Info($"POST method was used to invoke the function ({req.Method})");
        }
        else if (req.Method == HttpMethod.Get)
        {
            log.Info($"GET method was used to invoke the function ({req.Method})");
        }
        else
        {
            log.Info($"method was ({req.Method})");    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-28
      • 1970-01-01
      • 1970-01-01
      • 2021-08-21
      • 2015-01-11
      • 1970-01-01
      相关资源
      最近更新 更多