处理 Azure Function 中的 HttpStatus 302

问题描述

在 Azure Function 中,我试图从 MS Graph Converter (Doc) 返回一个 pdf 文件

文件以 302 Http 状态返回,在本地没什么大不了的,一切正常,但是当我在 azure 函数上发布时出现此错误

502 - Web 服务器在充当 网关或代理服务器。您所在的页面有问题 寻找,它无法显示。当 Web 服务器(同时 作为网关或代理)联系上游内容服务器, 它收到了来自内容服务器的无效响应。

我的代码

IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
             .Create("")
             .WithTenantId("")
             .WithClientSecret("") 
             .Build();

            ClientCredentialProvider authProvider = new ClientCredentialProvider(confidentialClientApplication);


            var graphClient = new GraphServiceClient(authProvider);


  var token = await authProvider.ClientApplication.AcquiretokenForClient(new string[] { "https://graph.microsoft.com/.default" }).ExecuteAsync();


            HttpClient httpClient = new HttpClient();

            httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer",token.Accesstoken);
            try
            {
                var response = await httpClient.GetAsync($"https://graph.microsoft.com/v1.0/drives/{Drive_Id}/items/{Item_Id}/content?format=pdf");

                log.Loginformation($"Status Code : {response.StatusCode}");

                if (response.StatusCode == System.Net.HttpStatusCode.Redirect)
                {
                    var bytes = await httpClient.GetByteArrayAsync(response.Headers.Location);

                    return new FileContentResult(bytes,"application/pdf");
                }

                if (response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    var bytes = await response.Content.ReadAsByteArrayAsync();

                    return new FileContentResult(bytes,"application/pdf");
                }

            }
            catch (Exception ex)
            {
                log.Loginformation($"Error : {ex.Message}");
            }

            return new NotFoundResult();

我认为有某种配置可以允许 302 临时重定向或类似的东西..

应该感谢任何帮助

解决方法

我发现我的 pb 正在上传文件,流关闭得太早,这导致函数退出...

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...