WSO2 Micro Integrator:通过 <call> Mediator

问题描述 投票:0回答:1

我正在使用 WSO2 Micro Integrator 调用本机 API,该 API 在直接通过 Postman 测试时成功运行,返回 200 状态代码。但是,当通过 Micro Integrator 调用相同的 API 时,我遇到了“Bad Request 400”(您的浏览器发送了无效请求)错误。

这里,出现以下错误响应:

<html>
<body>
    <h1>400 Bad Request</h1>
    Your browser sent an invalid request.
</body>
</html>

这是我在代理服务中使用的

<inSequence>
配置:

<inSequence>
    <enrich>
        <source clone="true" type="body"/>
        <target property="jwtToken" type="property"/>
    </enrich>
    <class name="TokenClassGen.TokenClassGen"/>
    <property expression="fn:concat('Bearer ', get-property('jwtToken'))" 
              name="Authorization" 
              scope="transport" 
              type="STRING"/>
    <call>
        <endpoint>
            <http method="get" uri-template="https://NATIVE-URL">
                <suspendOnFailure>
                    <initialDuration>-1</initialDuration>
                    <progressionFactor>-1</progressionFactor>
                    <maximumDuration>0</maximumDuration>
                </suspendOnFailure>
                <markForSuspension>
                    <retriesBeforeSuspension>0</retriesBeforeSuspension>
                </markForSuspension>
            </http>
        </endpoint>
    </call>
    <respond/>
</inSequence>

当我直接通过 Postman 测试相同的请求(使用相同的令牌和查询)时,它工作正常并返回 200 状态代码。

  1. 使用 WSO2 Micro Integrator 时,什么可能导致在此上下文中出现 400 Bad Request 错误?

  2. 问题是否与查询参数的编码方式或请求的构造方式有关?

  3. 是否有特定的配置或调试技巧来确保与在 Postman 中工作但通过 WSO2 Micro Integrator 失败的 API 的兼容性?

rest wso2 wso2-micro-integrator
1个回答
0
投票

因为这是一个糟糕的请求。

  • 检查初学者的请求标头:内容类型、接受等。否则显式添加它们。
  • 检查 JWT 令牌和不记名单词之间或令牌末尾是否有看不见的额外空格。作为解决方案,您可以使用修剪功能。
  • 记录授权标头以验证它是否与通过 Postman 发送的内容匹配。

祝你有美好的一天。

© www.soinside.com 2019 - 2024. All rights reserved.