无法通过POST方法将json数据发布到Web服务API-MULTIPART/FORM-DATA

2020-09-07 15:59发布

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

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


大家好,

我正在尝试使用Webservice Call将Json格式的数据发布到其他应用程序。

1。 获取令牌

2。 基于令牌需要发布数据。

我可以获取令牌,也可以使用令牌进行发布。

问题出在我发布数据后的响应是200&(成功:TRUE)

但是当我去看应用程序时,只显示文件而不显示数据。

如果我使用Post Man做同样的事情,那么我可以在那里看到数据。

这是我的代码段,

白斑病建议....

数据:lv_url类型的字符串值'https://XXXXXXXXXX?transformation = JSON Ewaybill(Standard)-1.03'。


cl_http_client => create_by_url(
导出
url = lv_url"逻辑目的地(在函数调用中指定)
导入
client = l_http_client" HTTP客户端抽象
异常
> arguments_not_found = 1
plugin_not_active = 2
internal_error = 3
其他= 4
)。

l_http_client-> request-> set_method(if_http_request => co_request_method_post)。
l_http_client-> request-> set_version(if_http_request => co_protocol_version_1_1)。

调用方法l_http_client-> request-> set_header_field
exporting
name ='HOST'
value =' live.encomply.com '。

调用方法l_http_client-> request-> set_header_field < br>导出
名称='授权'
值= ls_tkn_v。

调用方法l_http_client-> request-> set_header_field
导出
名称='app-id'
value ='envoice'。

调用方法l_http_client-> request-> set_content_type
导出
内容 _type ='multipart/form-data'。

*************************************正文
multipart = l_http_client-> request-> add_multipart()。

multipart-> set_header_field(
name = if_http_header_fields => content_disposition
value ='form-data; name =" transformation"'
)。

* multipart-> suppress_content_type()。

multipart-> set_cdata(
data ='JSON Ewaybill(Standard)-1.03'
)。

multipart = l_http_client-> request-> add_multipart()。

g_file1_cont = jsondata。 "包含json格式的数据

vari ='form-data; name =" E-waybill-Json"; filename ="'。
将vari ex'"'连接为名称。
< br> g_file1_form_data = name。

multipart-> set_header_field(
name = if_http_header_fields => content_disposition
value = g_file1_form_data
)。

multipart-> set_content_type('application/json')。

multipart = l_http_client-> request-> add_multipart()。

lv_len = strlen(jsondata)。

multipart-> set_cdata(
数据= g_file1_cont
偏移量= 0
长度= lv_len)。" 01 | XXXXXXXXXXX .... sep:cl_abap_char_utilities => cr_lf


" STEP-4:发送HTTP请求
调用方法l_http_client->发送
异常
http_communication_failure = 1
http_invalid_state =2。

" STEP-5:获取HTTP响应
调用方法l_http_client-> receive
异常
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed =3。

"第6步:读取HTTP返回代码
叫我 thod l_http_client->响应-> get_status
导入
代码= l_http_status_code
原因= l_status_text。

数据lv_result2类型字符串。


lv_result2 = l_http_client->响应-> get_cdata()。

请帮我...

此致

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

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


大家好,

我正在尝试使用Webservice Call将Json格式的数据发布到其他应用程序。

1。 获取令牌

2。 基于令牌需要发布数据。

我可以获取令牌,也可以使用令牌进行发布。

问题出在我发布数据后的响应是200&(成功:TRUE)

但是当我去看应用程序时,只显示文件而不显示数据。

如果我使用Post Man做同样的事情,那么我可以在那里看到数据。

这是我的代码段,

白斑病建议....

数据:lv_url类型的字符串值'https://XXXXXXXXXX?transformation = JSON Ewaybill(Standard)-1.03'。


cl_http_client => create_by_url(
导出
url = lv_url"逻辑目的地(在函数调用中指定)
导入
client = l_http_client" HTTP客户端抽象
异常
> arguments_not_found = 1
plugin_not_active = 2
internal_error = 3
其他= 4
)。

l_http_client-> request-> set_method(if_http_request => co_request_method_post)。
l_http_client-> request-> set_version(if_http_request => co_protocol_version_1_1)。

调用方法l_http_client-> request-> set_header_field
exporting
name ='HOST'
value =' live.encomply.com '。

调用方法l_http_client-> request-> set_header_field < br>导出
名称='授权'
值= ls_tkn_v。

调用方法l_http_client-> request-> set_header_field
导出
名称='app-id'
value ='envoice'。

调用方法l_http_client-> request-> set_content_type
导出
内容 _type ='multipart/form-data'。

*************************************正文
multipart = l_http_client-> request-> add_multipart()。

multipart-> set_header_field(
name = if_http_header_fields => content_disposition
value ='form-data; name =" transformation"'
)。

* multipart-> suppress_content_type()。

multipart-> set_cdata(
data ='JSON Ewaybill(Standard)-1.03'
)。

multipart = l_http_client-> request-> add_multipart()。

g_file1_cont = jsondata。 "包含json格式的数据

vari ='form-data; name =" E-waybill-Json"; filename ="'。
将vari ex'"'连接为名称。
< br> g_file1_form_data = name。

multipart-> set_header_field(
name = if_http_header_fields => content_disposition
value = g_file1_form_data
)。

multipart-> set_content_type('application/json')。

multipart = l_http_client-> request-> add_multipart()。

lv_len = strlen(jsondata)。

multipart-> set_cdata(
数据= g_file1_cont
偏移量= 0
长度= lv_len)。" 01 | XXXXXXXXXXX .... sep:cl_abap_char_utilities => cr_lf


" STEP-4:发送HTTP请求
调用方法l_http_client->发送
异常
http_communication_failure = 1
http_invalid_state =2。

" STEP-5:获取HTTP响应
调用方法l_http_client-> receive
异常
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed =3。

"第6步:读取HTTP返回代码
叫我 thod l_http_client->响应-> get_status
导入
代码= l_http_status_code
原因= l_status_text。

数据lv_result2类型字符串。


lv_result2 = l_http_client->响应-> get_cdata()。

请帮我...

此致

付费偷看设置
发送
2条回答
lukcy2020
1楼 · 2020-09-07 16:29.采纳回答

已解决。

当我向应用程序发送数据时,它以charset/utf-8(我没有设置它)的方式接收该应用程序不支持的内容,因此他们添加了功能,现在该应用程序可以加载数据了。

小c菟菟
2楼-- · 2020-09-07 16:35

您好praveen

我也在尝试做同样的事情。 您能告诉我其中涉及的步骤吗?

一周热门 更多>