全部產品
Search
文件中心

:HTTP請求處理常式(HTTP Handler)

更新時間:Jul 06, 2024

您可以使用HTTP Handler更方便地處理HTTP請求。調用函數時,Function Compute通過運行您提供的Handler來處理HTTP請求。本文介紹C# HTTP Handler的結構和特點。

HTTP Handler簽名

public virtual async Task<HttpResponse> HandleRequest(HttpRequest request, HttpResponse response, IFcContext fcContext)
{
}

Function Compute使用C#編寫HTTP函數,需要使用Nuget引入Aliyun.Serverless.CoreAliyun.Serverless.Core.Http包。樣本如下。

  <ItemGroup>
        <PackageReference Include="Aliyun.Serverless.Core" Version="1.0.1" />
        <PackageReference Include="Aliyun.Serverless.Core.Http" Version="1.0.3" />
  </ItemGroup>

HTTP Handler樣本

一個簡單的C# HTTP Handler樣本如下所示。

using System.Threading.Tasks;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Aliyun.Serverless.Core;
using Aliyun.Serverless.Core.Http;

namespace Example
{
    public class HttpHandler : FcHttpEntrypoint
    {
        public override async Task<HttpResponse> HandleRequest(HttpRequest request, HttpResponse response,
            IFcContext fcContext)
        {
            response.StatusCode = 200;
            response.ContentType = "text/plain";
            await response.WriteAsync("hello world\n");
            return response;
        }

        protected override void Init(IWebHostBuilder builder) { }

        static void Main(string[] args) { }
    }
}
函數入參解析如下。
  • HttpRequest requestHttpRequest類。
  • HttpResponse responseHttpResponse類。
  • IFcContext fcContext:內容物件,包含函數和請求的資訊。
說明 C# HTTP Handler必須繼承Aliyun.Serverless.Core.Http中的FcHttpEntrypoint,其中Init函數和HandleRequest必須重寫。

樣本程式

Function Compute官方庫包含使用各種處理常式類型和介面的應用程式範例。每個應用程式範例都包含可用於輕鬆編譯部署的方法,樣本如下。

dotnet3-blank-http:HTTP回調處理常式。