API 请求在 Postman 上完美运行,但在 Mulesoft API 的响应中返回空体

问题描述

我在 Postman 和 Mule Flow 上做同样的请求。 如果我使用一个简单的请求正文(例如 60 行的 JSON),它在两者上都可以正常工作。 但是,当我使用一个大请求(它有 5545 行)时,就会出现这个问题。

编辑:

好的,只是为了说清楚,因为它基本上都是虚拟数据,我需要帮助。如果请求正文在订单数组中只有这 5 个项目(请求对于这篇文章来说太长,所以我将其缩小,例如 purporses),它可以正常工作:

{

"orders": [

    {

        "increment_id": "000001501","old_order_id": "","total_qty_ordered": 1,},{

        "increment_id": "000001502",{

        "increment_id": "000001503",{

        "increment_id": "000001504",{

        "increment_id": "000001505",]

}

但是,如果同一个请求在“orders”数组中包含 8 个或更多项目,则响应体返回空:

{

"orders": [

    {

        "increment_id": "000001501",{

        "increment_id": "000001506",{

        "increment_id": "000001507",{

        "increment_id": "000001508",{

        "increment_id": "000001509",}

]

}

请求标头的不同之处如下:

Mulesoft 请求头:

POST /api/v1/SALES_ORDER HTTP/1.1
x-correlation-id: 1a0d03f0-626d-11eb-9b2e-b663a1179158
Host: HOST:PORT
User-Agent: AHC/1.0
Connection: keep-alive
Accept: */*
Content-Type: application/json; charset=UTF-8
Content-Length: 165216

邮递员请求头:

POST /api/v1/SALES_ORDER HTTP/1.1
Host: HOST:PORT
User-Agent: PostmanRuntime/7.26.10
Connection: keep-alive
Accept: */*
Content-Type: application/json; charset=UTF-8
Content-Length: 165216

同样,我发送了 SAME BODY 请求,但即使响应是 200 状态代码,Mulesoft 上的正文也返回空(即使“内容长度”标头仅在 Mulesoft 上为 0)

Mulesoft 响应头:

HTTP/1.1 200 OK
Date: Fri,29 Jan 2021 17:51:06 GMT
Server: Apache
Upgrade: h2
Connection: Upgrade,Keep-Alive
X-Powered-By: Undertow/1
Set-Cookie: JSESSIONID=5rNuv5ZX5ohn96xcd9YKahXSw414wxzZ7Y3PIRqw.loyaltyqaukpt; path=/b2becon
Set-Cookie: com.anm.octashop.country=IN; path=/
Set-Cookie: com.anm.octashop.lang=pt; path=/
country: IN
Content-Length: 0
Content-Language: pt-
Keep-Alive: timeout=5,max=100
Content-Type: text/html;charset=UTF-8

邮递员回复标题

HTTP/1.1 200 OK
Date: Fri,Keep-Alive
X-Powered-By: Undertow/1
Set-Cookie: JSESSIONID=xeqWEjuRcZ319zd8ZXtOnF0xN_-NEi-xygwGk05p.loyaltyqaukpt; path=/b2becon
Set-Cookie: com.anm.octashop.country=IN; path=/
Set-Cookie: com.anm.octashop.lang=pt; path=/
country: IN
Content-Length: 4372
Content-Language: pt-
Keep-Alive: timeout=5,max=100
Content-Type: text/html;charset=UTF-8

编辑(版本): 骡服务器运行时:4.3.0

API 套件模块:1.4

Anypoint MQ 连接器 - Mule 4:3.1.2

HTTP 连接器 - Mule 4:1.5.23

munit:2.3.1

munit 工具:2.3.1

安全配置属性扩展 - Mule 4: 1.2.3

套接字连接器:1.2.1

解决方法

据我了解您的问题,通过邮递员的请求工作正常,但在骡子流中它产生的问题比我们的骡子流中的问题更多

尝试调试您的代码并放置调试点

  1. 在外部 API 的 HTTP 请求者处,您在骡子流中遇到了
  2. 在 HTTP 请求者之后

在调试器中检查 HTTP 请求者是否为空之后的响应。

谢谢