如何调用多部分API来传输文件

2020-09-22 13:16发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


亲爱的。

作为与合作伙伴一起实施的API,需要调用多部分内容类型来传输文件。

正如我在邮递员中所做的测试一样,curl代码如下:

curl -X POST \ http://52.79.156.104:10080/v3/ppmt/uploads/target \ -H'授权:Bearer 92ded862-28ff-4ff4-b2c4-c385f1612e33'\ -H'缓存控制: no-cache'\ -H'内容类型:multipart/form-data; boundary = ---- WebKitFormBoundary7MA4YWxkTrZu0gW'\ -H'邮递员令牌:92a04cb2-05b1-3fd0-84b3-ae8ec84da176'\ -F fileType = IMEI \ -F file=@api_test_2.txt

当我在ABAP中调用curl命令时,尽管所有防火墙都已打开,但没有任何响应。

1。 是否可以调用curl命令与ABAP中的上述示例调用完全相同?

2。 如何在ABAP中生成边界代码?

3。 可以放入源代码吗?

-F file=@api_test_2.txt

ABAP代码如何找到文件目录? 还是应该放置所有目录路径?


此致

SJ。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


亲爱的。

作为与合作伙伴一起实施的API,需要调用多部分内容类型来传输文件。

正如我在邮递员中所做的测试一样,curl代码如下:

curl -X POST \ http://52.79.156.104:10080/v3/ppmt/uploads/target \ -H'授权:Bearer 92ded862-28ff-4ff4-b2c4-c385f1612e33'\ -H'缓存控制: no-cache'\ -H'内容类型:multipart/form-data; boundary = ---- WebKitFormBoundary7MA4YWxkTrZu0gW'\ -H'邮递员令牌:92a04cb2-05b1-3fd0-84b3-ae8ec84da176'\ -F fileType = IMEI \ -F file=@api_test_2.txt

当我在ABAP中调用curl命令时,尽管所有防火墙都已打开,但没有任何响应。

1。 是否可以调用curl命令与ABAP中的上述示例调用完全相同?

2。 如何在ABAP中生成边界代码?

3。 可以放入源代码吗?

-F file=@api_test_2.txt

ABAP代码如何找到文件目录? 还是应该放置所有目录路径?


此致

SJ。

付费偷看设置
发送
2条回答
jovirus
1楼-- · 2020-09-22 13:36

"当我在ABAP中调用curl命令时,尽管所有防火墙都已打开,但是没有响应。"

您如何做到的?

我建议使用CL_HTTP_CLIENT。 应该可以传输所有需要的标头数据并接收响应。

https://help.sap.com/查看器/753088fc00704d0a80e7fbd6803c8adb/7.5.9/zh-CN/48cae711356c3254e10000000a42189b.html

您可能需要使用事务SMICM读取一些跟踪,因为来自SAP系统的外部通信可能很棘手。

理论上,您也可以直接在操作系统级别(使用CALL C或首选的SXPG)调用CURL,但我强烈建议不要这样做。

CPLASF-自律
2楼-- · 2020-09-22 13:22

Hi Kyoungmi,

我使用以下代码将文件数据添加到HTTP客户端(类型为if_http_client的引用):

 DATA lv_header_value TYPE字符串。
 数据lo_multipart类型参考if_http_entity。

 lv_header_value ='form-data; name ="'&& the_form_field &&'"; filename ="'&& the_filename &&'"'。

 lo_multipart =客户端->请求-> add_multipart()。

 lo_multipart-> set_header_field(
     名称="内容处置"
     值= lv_header_value
 )。

 lo_multipart-> set_content_type(content_type = the_content_type)。
 lo_multipart-> set_data(data = the_document_data)。

干杯

艾米

一周热门 更多>