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

能否创建使用application/octet-stream的Azure Functions HTTP触发器?

可以创建处理application/octet-stream的Azure Functions HTTP触发器吗?

当然可以,Azure Functions HTTP触发器本身并不限制请求的Content-Type,你只需要在函数代码中调整请求内容的处理逻辑,就能适配application/octet-stream类型的二进制流请求。

具体实现要点:

  • 直接读取原始二进制内容:跳过默认的JSON解析逻辑,直接读取请求的原始字节流。不同语言的实现方式略有差异:
    • C#:通过await req.Content.ReadAsByteArrayAsync()获取二进制数据
    • Python:通过await req.get_body()获取二进制数据
  • 按需设置响应类型:如果需要返回二进制格式的响应,记得将响应的Content-Type指定为application/octet-stream

示例代码(C#)

[FunctionName("OctetStreamHandler")]
public static async Task<HttpResponseMessage> Run(
    [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequestMessage req,
    ILogger log)
{
    log.LogInformation("Handling octet stream request");
    byte[] binaryContent = await req.Content.ReadAsByteArrayAsync();
    
    // 在这里添加二进制内容的处理逻辑,比如写入存储、解析数据等
    
    return new HttpResponseMessage(HttpStatusCode.OK)
    {
        Content = new ByteArrayContent(binaryContent),
        Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream")
    };
}

示例代码(Python)

import azure.functions as func

def main(req: func.HttpRequest) -> func.HttpResponse:
    import logging
    logging.info("Handling octet stream request")
    
    binary_content = req.get_body()
    
    # 在这里添加二进制内容的处理逻辑
    
    return func.HttpResponse(binary_content, mimetype="application/octet-stream")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 12:24:55