使用CL_HTTP_CLIENT为POST方法传递URL参数

2020-08-22 03:19发布

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

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


我必须查询一个外部URL来获取一些我们必须在系统中使用的数据。

现在,API已从GET更改为POST。

之前,我们直接在RFC中维护URL参数,并能够生成成功的响应。

但是现在由于自从API更改(当我更改用于发布QUERY参数的请求方法)以来,该更改未传递给服务。

例如,如果我的URL是" XXXX .XXXX.net/v1/oauth2/tokens?grant_type = client-credentials ",该服务仅获得 XXXX.XXXX.net/v1/oauth2/令牌。 查询参数将被发布请求截断。

我已经检查了帖子中的选项

https://archive.sap.com/discussions/thread/3437183

还有其他方法吗? 使它像GET方法那样工作?

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

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


我必须查询一个外部URL来获取一些我们必须在系统中使用的数据。

现在,API已从GET更改为POST。

之前,我们直接在RFC中维护URL参数,并能够生成成功的响应。

但是现在由于自从API更改(当我更改用于发布QUERY参数的请求方法)以来,该更改未传递给服务。

例如,如果我的URL是" XXXX .XXXX.net/v1/oauth2/tokens?grant_type = client-credentials ",该服务仅获得 XXXX.XXXX.net/v1/oauth2/令牌。 查询参数将被发布请求截断。

我已经检查了帖子中的选项

https://archive.sap.com/discussions/thread/3437183

还有其他方法吗? 使它像GET方法那样工作?

付费偷看设置
发送
4条回答
Nir深蓝
1楼-- · 2020-08-22 03:59

https: //help.sap.com/http.svc/rc/abapdocu_752_index_htm/7.52/zh-CN/index.htm?file=abenicf_post_service_abexa.htm

黑丝骑士
2楼-- · 2020-08-22 04:14

我该如何解决 ?

天桥码农
3楼-- · 2020-08-22 04:13

URL参数可以通过两种方式传递。 下面的代码将为您提供所需的确切信息(根据邮递员屏幕截图)。

1。

lo_http_client-> append_field_url(
导出
name ='fieldname'"字段名称
value ='fieldvalue'"字段Value
CHANGING
url ='lv_url'" URL指向 附加字段
)。

2。

lo_http_client-> request-> set_form_field(
EXPORTING
name ='fieldname'"表单字段名称
value ='fieldvalue'"表单字段值
)。

> cl_http_utility => set_request_uri(request = lo_http_client-> request
uri = lv_url)。

此致

bbpeas
4楼-- · 2020-08-22 04:15

HI Horst,

感谢您的快速回复。

这是通过RFC(类型G)调用的外部非SAP服务,该服务使用通过客户端凭据进行的基本身份验证。

我们必须提供用于验证的用户名和密码。 最重要的是,这是一个传出的HTTPS请求。 我们将根据已配置的RFC目标实例化该目标。

在该示例中,我们只是调用服务并显示它。 但是,我们希望调用外部服务并处理响应,并将其用于进一步处理。

简而言之,有一种使用CL_HTTP_CLIENT类传递QUERY参数的方法。 我知道我们可以通过SET_HEADER_FIELD和SET_FORM_FIELD方法传递Header参数和表单参数。 但是此外部服务使用查询参数。

这就是邮递员

以黄色突出显示的文本是查询参数。 并且不被视为Header参数或Form参数。

等待您的宝贵反馈。

亲切的问候,

Vamsi