点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好社区,
希望有人可以帮助我。
我需要与外部API通信。 我将类cl_http_client用于方法POST,DELETE,GET。 现在,我需要使用PATCH方法更改客户数据。 不支持PUT。
呼叫方法cl_http_client => create_by_url
导出
url = lv_url
导入
客户端= lo_http
例外情况
arguments_not_found = 1
plugin_not_active = 2
internal_error = 3
OTHERS = 4。
调用方法lo_http-> request-> set_version(
if_http_request => co_protocol_version_1_0)。
呼叫方法lo_http-> request-> if_http_entity〜set_content_type
导出
content_type ='application/json; charset = utf-8'。
呼叫方法lo_http-> request-> set_header_field
导出
名称='授权'
值='4711'。
lv_length = strlen(lv_body)。
调用方法lo_http-> request-> set_cdata
导出
data = lv_body
偏移量= 0
长度= lv_length。
呼叫方法lo_http-> request-> set_method('PATCH')。
lo_http-> send(
例外情况
http_communication_failure = 1
http_invalid_state = 2)。
lo_http-> receive(
例外情况
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3)。
lv_response = lo_http-> response-> get_cdata()。
主要问题是,有人为类cl_http_client使用了PATCH方法吗?
还是有另一种解决方法?
解决方案!
cl_http_client => create_by_destination(
EXPORTING
目标= iv_dest"逻辑目标(在函数调用中指定)
IMPORTING
client = lo_http_client" HTTP客户抽象
EXCEPTIONS
arguments_not_found = 1
destination_not_found = 2
destination_no_authority = 3
plugin_not_active = 4
internal_error = 5
OTHERS = 6
)。
创建对象lo_rest_client
导出
io_http_client = lo_http_client。
lo_http_client-> request-> set_version(if_http_request => co_protocol_version_1_0)。
压缩lv_url NO-GAPS。
cl_http_utility => set_request_uri(
导出
request = lo_http_client-> request" HTTP Framework(iHTTP)HTTP Request
uri = lv_url" URI字符串(以/path?query的形式 -string)
)。
*设置有效负载或正文(JSON或XML)
lo_request = lo_rest_client-> if_rest_client〜create_request_entity()。 (iv_name =`授权`iv_value = lv_token)。
lo_request-> set_string_data(lv_body)。
*对CL_REST_HTTP_CLIENT类的增强-方法PATCH
lo_rest_client->补丁(lo_request)。
*收集响应
lo_response = lo_rest_client-> if_rest_client〜get_response_entity()。
lv_response = lo_response-> get_string_data()
x
x
x
CL_REST_HTTP_CLIENT类中的编码方法PATCH
send_receive(iv_http_method ='PATCH'io_entity = io_entity)。
问题/问题是...?
哦,对不起,它没有用!
例如方法POST
呼叫方法lo_http-> request-> set_method(CO_REQUEST_METHOD_POST)。
主要问题是,有人为类cl_http_client使用了PATCH方法吗?
很好! :-)
CL_REST_HTTP_CLIENT-PATCH是您的"增强方法"吗?
顺便说一句,有 IF_REST_MESSAGE- GC_METHOD_PATCH 常量,但它没有像其他常量那样使用:
一周热门 更多>