[英]How to use PATCH method with CL_REST_HTTP_CLIENT?
我正在嘗試使用外部 REST 服務。 例子:
DATA : lo_client TYPE REF TO if_http_client.
cl_http_client=>create_by_url(
EXPORTING
url = 'http://my_url'
IMPORTING
client = lo_client
EXCEPTIONS
argument_not_found = 1
plugin_not_active = 2
internal_error = 3
OTHERS = 4 ).
DATA(rest_client) = NEW CL_REST_HTTP_CLIENT( lo_client ).
rest_client->GET( ).
GET、POST、PUT 和 DELETE 都可以,因為它們是在類CL_REST_HTTP_CLIENT
中實現的。
有沒有人找到使用 PATCH 方法的解決方案,否則我怎么能使用它?
PS:PATCH 的常量存在( if_rest_message=>gc_method_patch
),但正如我所說,它沒有實現(send_receive)。
謝謝你。
您可以使用 CL_HTTP_CLIENT 自由設置方法,CL_REST_HTTP_CLIENT 也在幕后使用這個類。
DATA : lo_client TYPE REF TO if_http_client.
cl_http_client=>create_by_url(
EXPORTING
url = 'http://my_url'
IMPORTING
client = lo_client
EXCEPTIONS
argument_not_found = 1
plugin_not_active = 2
internal_error = 3
OTHERS = 4 ).
lo_client->request->set_method( 'PATCH' ).
lo_client->request->set_content_type( 'application/json' ).
lo_client->send( ).
lo_client->receive(
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
OTHERS = 4 ).
確實不支持。 讓它工作的快速而骯臟的方法是復制類並添加以下方法:
method PATCH.
send_receive( iv_http_method = if_rest_message=>gc_method_patch io_entity = io_entity ).
endmethod.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.