在 Redhat 7.5 上的 R 中向 Plumber API 端点发送大体尺寸的 POST 请求时出现问题

Problem sending POST request with big body size to Plumber API endpoint in R on Redhat 7.5

我正在尝试使用 MSXML2.ServerXMLHTTP 从 VBA 发送一个 table 作为 JSON 对象(大小约为 20 KB)的大约 140 行和 5 列在 POST 请求的正文中,使用 plumber API 包从 R 获取端点。服务器上 R 中的 endpoint/function 运行 抛出以下错误: fromJSON(requestList) 中的简单错误:缺少参数 "requestList",没有默认值

requestList 是传递给端点函数的参数。看起来它在网络通话中迷路了。 如果我将 table 大小减少到 30 行而不是 140 行,则会找到 requestList 并成功处理请求。

我的平台如下: 1. 端点用 R 编写并使用 Plumber API 公开。 2. 使用 Redhat 7.5 的 AWS 实例上的端点是 运行。 3. VBA(客户端)的请求超时设置为 100 分钟。

如果fromJSON(requestList)是:

  • 当它有 30 行时工作
  • 当有 140 行时引发 argument "requestList" is missing, with no default 类型的错误

...考虑到 JSON 主体没有大小限制(即使有,也肯定不会是 20 KB),我会说问题出在包含的数据中行 31-140.

必须有一些特殊字符在 VBA 客户端序列化时可以正常通过(即数据被正确序列化,因为 VBA 容忍该特殊字符)但是在服务器端反序列化时,这个特殊字符会中断请求,就好像输入实际上不是输入一样。

我的故障排除建议是将您的请求分成 30 个块(1-3031-6061-90 等),直到找到有问题的块,然后对该块进行二等分,直到您检测到破坏它的特殊字符。