gpt4 book ai didi

java - 我可以访问 http channel 入站适配器状态代码表达式中的 header 吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:08:27 25 4
gpt4 key购买 nike

我有一个这样配置的 HTTP 入站 channel 适配器:

<int-http:inbound-channel-adapter id="/api/requests"
channel="httpRequestsChannel"
path="/requests"
supported-methods="POST,OPTIONS">
<int-http:cross-origin allow-credentials="false" allowed-headers="*" origin="*" />
</int-http:inbound-channel-adapter>

我想让它回复 201 到 POST 请求和 200 到其他请求(即 OPTIONS),但都不是:

  • headers.get('http_requestMethod').equals("POST") ? 201 : 200
  • :headers[http_requestMethod].equals("POST") ? 201 : 200
  • “POST”.equals(:headers['http_requestMethod']) ? 201 : 200

对于 status-code-expression 属性有效,它们中的大多数以失败的上下文初始化结束:

IllegalStateException: No node

我是不是在这里使用了错误的语法,或者那些细节在那个阶段不可用?

我看过 this question建议使用网关,但我现在想坚持使用适配器。

最佳答案

该表达式无法访问 requestMessage。但它确实可能是有道理的。随时就此事提出 JIRA。

作为您问题的解决方案,我建议像这样配置它:

status-code-expression="T(org.springframework.web.context.request.RequestContextHolder).requestAttributes.request.method.equals('POST') ? 201 : 200"

关于java - 我可以访问 http channel 入站适配器状态代码表达式中的 header 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50269833/

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