gpt4 book ai didi

azure - 通过代理清零内容长度的 HTTP HEAD 方法

转载 作者:行者123 更新时间:2023-12-02 23:10:14 26 4
gpt4 key购买 nike

我已经使用访问 Blob 存储的 HTTP 触发器函数创建了一个文件服务器。这工作正常,并且使用 HTTP GET 提供文件。

但是,我想实现 HTTP HEAD 方法响应以确定文件大小。这在直接调用时也可以正常工作,但在通过代理调用时则不行,在这种情况下,Content-Length 返回为 0

我创建了一个简化的示例来演示该问题

函数代码

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
log.Info("HeadTest fired");

HttpResponseMessage httpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK);

HttpContent httpContent = new ByteArrayContent(new Byte[0]);

httpContent.Headers.ContentLength = 1234;

httpResponseMessage.Content = httpContent;

httpResponseMessage.Headers.Add("X-Header-Test", "true");

return httpResponseMessage;
}

代理定义

{
"$schema": "http://json.schemastore.org/proxies",
"proxies": {
"HeadTestProxy": {
"matchCondition": {
"route": "/proxy/HeadTest",
"methods": [
"HEAD"
]
},
"backendUri": "https://localhost/api/HeadTest"
}
}
}

函数响应

cache-control →no-cache
content-length →1234
date →Thu, 15 Mar 2018 09:36:10 GMT
expires →-1
pragma →no-cache
server →Microsoft-IIS/10.0
x-header-test →true
x-powered-by →ASP.NET

代理响应

cache-control →no-cache
content-length →0
date →Thu, 15 Mar 2018 09:36:06 GMT
expires →-1
pragma →no-cache
server →Microsoft-IIS/10.0
x-header-test →true
x-powered-by →ASP.NET

进一步说明

我还尝试将长度放入自定义 header 中,然后将其复制到代理响应覆盖中的原始 Content-Length header 中,但这也导致 0

最佳答案

content-length is a content header so can only be added to the content header collection

我已经创建了一个演示来测试,我也遇到了和你一样的问题。 Content-Length 无法传递给代理响应 header 。我想这是一个错误。关于Azure功能中的代理的文章很少。特别是对于http头。我建议您可以将这个问题发布到github。

关于azure - 通过代理清零内容长度的 HTTP HEAD 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49287913/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com