首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Azure API管理隐藏状态代码4**和5**的响应正文

为什么Azure API管理隐藏状态代码4**和5**的响应正文
EN

Stack Overflow用户
提问于 2020-05-22 15:38:47
回答 1查看 1.1K关注 0票数 1

我在Azure API Management中创建了一个API,我意识到APIM实际上隐藏了我在响应中返回的一些主体。我得到200,但我没有得到404,401,或500。

我知道最好是控制返回的内容,而且我们不想给最终用户提供带有500错误正文的HTML。

但是,我在API中使用了404或401,并且在响应正文中返回了一些信息。是否有可能控制某些状态代码返回的内容?

EN

回答 1

Stack Overflow用户

发布于 2020-05-24 21:23:10

使用set-body策略设置传入和传出请求的消息体。要访问邮件正文,可以使用context.Request.Body属性或context.Response.Body,具体取决于策略是在入站部分还是出站部分。

您可以使用以下代码自定义响应正文:

代码语言:javascript
复制
<when condition="@(context.Response.StatusCode == 404)">
    <return-response>
        <set-status code="404" reason="NotFound">
            <set-header name="Content-Type">
                <value>application/json</value>
            </set-header>
            <set-body>@{
                var response = context.Response.Body.As<JObject>();
                foreach (var key in new [] {"HTTP Error 404. The requested resource is not found."}) {
                response.Property (key).Remove ();
            }
            return response.ToString();
      }</set-body>
     </return-response>
</when>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61949996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档