如何使用SAP ICF将数据分块发送到外部服务



我目前正在尝试使用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\n媒体,位于\r\n\r\n文件夹中。\\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响应处理中,正在对任一响应文本进行额外修改。有没有经验丰富的人可以帮忙

我最终意识到,ICF使用HTTP1.0,块在HTTP1.1中添加,在HTTP2.0中退役。

请告诉我是否应该删除这个问题。

最新更新