REST-Schnittstelle mit PUT-methode

ABAP, Java, BSP, etc.
2 Beiträge • Seite 1 von 1
2 Beiträge Seite 1 von 1

REST-Schnittstelle mit PUT-methode

Beitrag von GünterL (ForumUser / 8 / 0 / 0 ) »
Hallo liebe ABAP-Freaks,

mal ne Frage: Ich möchte eine REST-SSt programmieren, indem ich mir über eine RFC-Destination eine Instanz zu IF_HTTP_CLIENT anlege! Zu dieser lege ich eine Instanz der Klasse cl_rest_http_client an, um dann im späteren Verlauf die PUT-Methode aufzurufen.
Doch leider bekomme ich immer den Status 405: not allowed zurück, obwohl die RFC-Destination auch über Proxy mit User etc. i. O. ist und der PUT-request über POSTMAN funktioniert!

Zu erwähnen wäre hier noch, dass ich eine Datei binär übertragen möchte!

Code: Alles auswählen.

      cl_http_client=>create_by_destination(
        EXPORTING
          destination              = iv_rfcdest
        IMPORTING
          client                   = lo_client
        EXCEPTIONS
          argument_not_found       = 1
          destination_not_found    = 2
          destination_no_authority = 3
          plugin_not_active        = 4
          internal_error           = 5
          OTHERS                   = 6
             ).
.....
    DATA(lo_rest) = NEW  cl_rest_http_client( io_http_client = lo_client ).
    lo_entity = lo_rest->if_rest_client~create_request_entity( iv_multipart = 
                                  abap_true ).
.....
* HTTP PUT
    lo_entity->set_binary_data( iv_data = lv_data ). "lv_data = XSTRING
    lo_rest->if_rest_resource~put( io_entity = lo_entity ).
    DATA(lo_response)  = lo_rest->if_rest_client~get_response_entity( ).
    DATA(lv_http_status)   = lo_response->get_header_field( '~status_code' ).

lv_http_status = 405!?!?!?
bin für jeden Input offen :-)

Danke schon mal für Euren Input ...

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: REST-Schnittstelle mit PUT-methode

Beitrag von GünterL (ForumUser / 8 / 0 / 0 ) »
So, habe das Problem gelöst!
War eigentlich alles richtig, hatte nur leider ein Blank zuviel drin :-(

lo_client created by URL with proxy!

Bei Proxy-Verwendung darauf achten, dass dieser nur HTTP 1.0 kann!!

lo_client->propertytype_logon_popup = lo_client->co_disabled.
lo_client->request->set_method( 'PUT' ).
lo_client->request->set_version( if_http_request=>co_protocol_version_1_0 ).

lt_header = VALUE #( ( name = 'accept' value = '*/*' )
( name = 'accept-encoding' value = 'gzip,deflate,br' )
( name = 'Content-Type' value = if_rest_media_type=>gc_multipart_form_data )
).
lo_client->request->set_header_fields( lt_header ).
lo_client->request->if_http_entity~set_formfield_encoding( formfield_encoding = cl_http_request=>if_http_entity~co_encoding_raw ).

DATA(lo_part) = lo_client->request->if_http_entity~add_multipart( ).
lv_value = |form-data; name="file"; filename="{ lv_filename }"|.
lo_part->set_header_field( name ='Content-Disposition' value = lv_value ).
lo_part->set_data( data = lv_data offset = 0 ).

lo_client->send( EXPORTING timeout = 300
EXCEPTIONS http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
OTHERS = 4
).

Damit geht das! Aber ich habe jetzt leider in dem Body-Content zwischen der Boundary och die Header-Fields mit drin! Warum die auch immer da mit übertragen und nicht rausgefiltert werden.
Na ja, vielleicht weißja jemand, wie man die weg bekommt :-)
VG
Günter

Seite 1 von 1

Vergleichbare Themen

9
Antw.
8387
Views
14
Antw.
13325
Views
Methode vorschreiben, Schnittstelle nicht
von ralf.wenzel » 16.11.2014 13:55 • Verfasst in ABAP Objects®
10
Antw.
7557
Views
SAP REST API Aufruf Problem / SSL-Zertifikat Überprüfung
von sap_koun » 17.08.2021 18:06 • Verfasst in ABAP® für Anfänger
1
Antw.
8066
Views
Konsumieren des REST Service accounts.deleteAccount
von ABAPlerin » 30.06.2022 18:07 • Verfasst in SAP Cloud Platform
3
Antw.
5404
Views
SAP ABAP Rest aufruf: http communication failure?
von sap_koun » 29.12.2022 01:03 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Substitution zum Zeitpunkt 60
Gestern von irene 1 / 119
Zeit in UTC umwandeln
vor 2 Tagen von ralf.wenzel 8 / 3757
CDS View Erweitern mit Hierarchie
vor 2 Tagen von Interger 1 / 2373
Probleme beim Debuggen Einkaufsformular
vor 3 Tagen von GünterL gelöst 5 / 31410

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Substitution zum Zeitpunkt 60
Gestern von irene 1 / 119
Zeit in UTC umwandeln
vor 2 Tagen von ralf.wenzel 8 / 3757
CDS View Erweitern mit Hierarchie
vor 2 Tagen von Interger 1 / 2373
Probleme beim Debuggen Einkaufsformular
vor 3 Tagen von GünterL gelöst 5 / 31410

Unbeantwortete Forenbeiträge

Substitution zum Zeitpunkt 60
Gestern von irene 1 / 119
CDS View Erweitern mit Hierarchie
vor 2 Tagen von Interger 1 / 2373
Interactive Forms dynamische Tabelle
vor einer Woche von Gottschall 1 / 15922
Intervall mit Beziehungswissen füllen
vor 3 Wochen von wolli 1 / 29074