簡體   English   中英

如何在 CL_REST_HTTP_CLIENT 中使用 PATCH 方法?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM