Azure 门户、开发人员门户和 Postman 之间的 APIM 响应标头不同

Posted

技术标签:

【中文标题】Azure 门户、开发人员门户和 Postman 之间的 APIM 响应标头不同【英文标题】:APIM Response Headers Different Between Azure Portal, Developer Portal and Postman 【发布时间】:2019-07-17 03:15:48 【问题描述】:

我正在学习 Azure API 管理,发现 Azure 门户、开发者门户和 Postman 之间的响应标头不同。

我正在此端点上执行 HTTP Get: https://secondattempt.azure-api.net/speakers

使用https://conferenceapi.azurewebsites.net/ 作为 Web 服务 URL。

我在这里比较了它们:

Azure 门户:

    缓存控制 编译指示 传输编码 内容类型 过期 Set-Cookie (不存在) 日期 Op-Apim-Trace-Location 变化

开发者门户:

    缓存控制 编译指示 传输编码 内容类型 过期 设置 Cookie 日期 Ocp-Apim-Trace-Location 变化(不存在)

邮递员:

    缓存控制 编译指示 传输编码 内容类型 过期 设置 Cookie 日期 Ocp-Apim-Trace-Location (不存在) 变化(不存在)

以下是它们在 UI 中的实际外观:

Azure 门户:

开发者门户:

邮递员:

为什么某些标头存在于某些环境中而其他环境中不存在?

另外,为什么标题以不同的顺序出现?

【问题讨论】:

【参考方案1】:

    对于邮递员(Ocp-Apim-Trace-Location 不存在)

    OCP-Apim-Trace 功能使您能够指定 APIM 是否应在 blob 存储上生成跟踪文件。

    从 Postman 发出 GET 请求时,OCP-Apim-Trace 未启用。

    例如,在 Postman 中将标头设置为“true”,将在响应中返回一个名为 OCP-Apim-Trace-Location 的 HTTP 标头。

    这将包含您的跟踪文件的 URL,您可以在任何浏览器中打开该文件。

    对于 Postman 和 Developer 门户(不重新发送)

    请求未缓存。对 URL 的每个请求都应该被视为唯一且不可缓存的请求。

    对于 Azure 门户(Set-Cookie 不存在)

    查看 Trace 然后转发请求,我们确实看到了 "name": "Set-Cookie", "value": "ARRAffinity

【讨论】:

以上是关于Azure 门户、开发人员门户和 Postman 之间的 APIM 响应标头不同的主要内容,如果未能解决你的问题,请参考以下文章

自定义 Azure API 管理开发人员门户

在 Azure API 管理中查看已发布的无隐私浏览模式的开发者门户

API 管理开发人员门户 CI/CD

Azure Function App:身份验证中断开发门户

为啥不能配置 Azure 诊断以通过新的 Azure 门户使用 Azure 表存储?

将 Azure 托管的机器人添加到 Microsoft Teams 开发门户