【问题标题】:How to send data to external service in chunks with SAP ICF?如何使用 SAP ICF 将数据分块发送到外部服务?
【发布时间】:2020-08-18 08:25:17
【问题描述】:

我目前正在尝试使用 NODEJS 外部服务实现 SAP 通信,其中 SAP 通过 Internet 通信框架 (ICF) 发送数据。

我已经能够以纯格式发送数据。但是,我有兴趣通过块发送它。 所以我设置了这两个标题:

CALL METHOD server->response->set_header_field
  EXPORTING
    name  = 'Transfer-Encoding'
    value = 'chunked'.

CALL METHOD server->response->set_header_field
  EXPORTING
    name  = 'Content-Type'
    value = 'text/plain'.

我按照维基百科中的说明设置响应数据: c_result = '4\r\nWiki\r\n5\r\npedia\r\nE\r\n in\r\n\r\nchunks.\r\n0\r\n\r\n'。 服务器->响应->set_cdata(c_result)。

但是,当我在 GW 客户端中调用它时,我收到错误:“HTTP 接收失败:与合作伙伴的连接断开”。

当我在我的 NodeJS 外部服务中调用它时,我得到了错误:

{ Error: Parse Error
    at Socket.socketOnData (_http_client.js:442:20)
    at Socket.emit (events.js:198:13)
    at addChunk (_stream_readable.js:288:12)
    at readableAddChunk (_stream_readable.js:269:11)
    at Socket.Readable.push (_stream_readable.js:224:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:94:17) bytesParsed: 945, code: 'HPE_INVALID_CHUNK_SIZE' }

您能帮我找出问题所在吗? 我有一些嫌疑人:

  1. SAP ICF 根本不支持块
  2. 要么我没有正确设置响应
  3. 在 SAP 响应处理中,正在另外修改响应文本。 有经验的人可以帮忙吗?

【问题讨论】:

    标签: http chunks sap-basis


    【解决方案1】:

    我最终意识到,ICF 使用的是 HTTP 1.0,而chunks were added in HTTP 1.1 and retired in HTTP 2.0

    如果我应该删除问题,请告诉我。

    【讨论】:

    • 问题和答案对未来的访问者很有用,也许现在你找到了答案,你可以稍微概括一下这个问题,以便未来的访问者更容易找到你的帖子。
    猜你喜欢
    • 2021-09-06
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多