我有一个Mule应用程序,它使用<http:request
连接器通过HTTPS调用外部API。当我在本地构建和部署我的应用程序时,通话正常。当我使用Mule应用程序发送的完全相同的有效载荷对同一个外部API进行邮差调用时,调用工作正常。但是,当我将Mule应用程序部署到Cloudhub并发出请求时 - 我从外部API获得400响应。Mule HTTPS POST请求在部署到Cloudhub时不起作用
这里是我的流程:
<http:request-config name="mambuRequestConfiguration" protocol="HTTPS" doc:name="HTTP Request Configuration">
<http:basic-authentication username="${mambu.username}" password="${mambu.password}" preemptive="true" />
<tls:context>
<tls:key-store type="jks" path="keystore.jks" alias="${keystore.alias}" keyPassword="${keystore.keypassword}" password="${keystore.password}" />
</tls:context>
</http:request-config>
<flow name="createClientDepositAccount">
<dw:transform-message metadata:id="412fd434-12bb-47a3-9605-9bfc1d9fec46" doc:name="Transform Message">
<dw:set-payload><![CDATA[%dw 1.0
%output application/json
---
{
savingsAccount: {
accountHolderKey: payload.clientKey,
accountHolderType: "CLIENT",
productTypeKey: payload.productKey,
name: payload.clientProductName,
accountType: payload.accountType,
accountState: payload.accountState,
interestRate: payload.interestRate
}
}]]></dw:set-payload>
</dw:transform-message>
<http:request config-ref="mambuRequestConfiguration" path="${mambu.deposit.path}" method="POST" host="${mambu.host}" port="${mambu.port}" doc:name="Mambu: Create Client Deposit Account">
<http:success-status-code-validator values="0..599"/>
</http:request>
<dw:transform-message metadata:id="49f1231f-485f-433c-82c4-3d83856ac442" doc:name="Transform Message">
<dw:set-payload><![CDATA[%dw 1.0
%output application/json
---
{
message: "Account created successfully",
key: payload.savingsAccount.encodedKey
}]]></dw:set-payload>
</dw:transform-message>
</flow>
我打电话给外部服务是Mambu,云银行平台。我在我的应用程序中有许多其他流程,都会向其他各种Mambu API发出GET
请求 - 所有工作都正常(所有GET
请求也通过HTTPS)。我从Mambu得到的响应是400
与有效载荷:
{"returnCode":3,"returnStatus":"INVALID_API_OPERATION"}
我无法复制我在本地实例的Cloudhub中看到的行为。唯一不同的是这个电话给我正在做的其他人,这是一个POST
请求。