HTTP-Post von Dateien in ABAP

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

HTTP-Post von Dateien in ABAP

Beitrag von Abrissbirne (ForumUser / 1 / 0 / 0 ) » 17.09.2012 01:44
Hallo zusammen,

meine Frage ist schnell erklärt. Ich versuche einen Report zu bauen, der über HTTP-Post eine (oder mehrere Dateien) an eine bestimmte URL schickt. Hat da jemand bereits Erfahrungen gesammelt?

Viele Grüße

A


Re: HTTP-Post von Dateien in ABAP

Beitrag von a-dead-trousers (Top Expert / 3477 / 107 / 904 ) » 17.09.2012 08:18
hi!

Sofern du weißt wie eine HTTP Kommunikation abläuft, kannst du dir ja mal das Interface IF_HTTP_CLIENT anschauen.
(Implementierende Klasse CL_HTTP_CLIENT)
Es gibt sicher auch Bausteine, die eine Menge der Initialisierungsarbeit für bestimmte Anwendungsgebiete abnehmen, aber dafür musst mehr Infos posten, was denn versendet werden soll.

lg
ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40

Re: HTTP-Post von Dateien in ABAP

Beitrag von Tron (Top Expert / 1167 / 22 / 263 ) » 17.09.2012 09:35
Moin,
möge Dir Dieser "Snippet" helfen.

Code: Alles auswählen.


DATA e_xml TYPE string.
DATA x_xml TYPE xstring.
DATA lt_makt TYPE TABLE OF makt.
DATA xlen TYPE i.
DATA traw TYPE TABLE OF logdata.
DATA fn TYPE string VALUE 'C:\tempSchema.xml'.
DATA http_rc TYPE i.
DATA: subrc TYPE i,
      errortext TYPE string.


DEFINE m_check_err.
  if sy-subrc <> 0.
    call method l_client->get_last_error
      importing
        code    = subrc
        message = errortext.
    message s000(sr) with errortext.
    exit.
  endif.
END-OF-DEFINITION.



DATA:
    l_client TYPE REF TO if_http_client,
    l_request TYPE REF TO if_http_request,
    l_url TYPE string VALUE 'http://10.144.24.222:8081'.

DATA: response TYPE string.


*cl_http_client=>create_by_destination( EXPORTING
* destination = http_dest IMPORTING client = l_client ).


* Creation of new IF_HTTP_Client object
CALL METHOD cl_http_client=>create_by_url
  EXPORTING
    url                = l_url
  IMPORTING
    client             = l_client
  EXCEPTIONS
    argument_not_found = 1
    plugin_not_active  = 2
    internal_error     = 3
    OTHERS             = 4.


m_check_err.

l_client->request->set_header_field( name = '~request_method'
value = 'POST' ).



*IF protocol = 'HTTP/1.0'.
*l_client->request->set_version(
*     if_http_request=>co_protocol_version_1_0 ).
*ELSE.
  l_client->request->set_version(
       if_http_request=>co_protocol_version_1_1 ).
*ENDIF.

*CALL METHOD l_client->request->set_method(
*  if_http_request=>co_request_method_post ).


* filling the payload of the request

*Dem POST-Aufruf können Parameter angehängt werden:
*
*  writeDebug =“checked“,leer(default)
*Die generierten Ergebnisse und auch das übergebene XML wird auf dem
*Server abgelegt.Diese Option darf nicht im Multi-User Betrieb verwendet
* werden!
*
*  data=XML-Data
*Dieser Parameter überträgt die XML-Daten.
*template=Name des K-document Templates
*Der Name der Vorlage ohne die Dateiendung (.kdoc)
*
*  noencoding=“checked“,leer(default)
*Das Ergebnisdokument wird standardmäßig als BASE64 kodierter String
*zurückgeliefert. Diese Kodierung lässt sich durch den Parameter
*abschalten.
*
*  outputtype=“wordml“(default),“pdf“,“word97“
*Über diesen Parameter kann das Format des Ergebnisdokumentes
*beeinflusst werden.

CALL METHOD l_client->request->set_form_field
  EXPORTING
    name  = '$GET'
    value = 'alltemplates'.

* sending/receiving
l_client->response->get_status( IMPORTING code = http_rc ).


CALL METHOD l_client->send
  EXCEPTIONS
    http_communication_failure = 1
    http_invalid_state         = 2
    http_processing_failed     = 3
    OTHERS                     = 4.

l_client->response->get_status( IMPORTING code = http_rc ).

m_check_err.

CALL METHOD l_client->receive
  EXCEPTIONS
    http_communication_failure = 1
    http_invalid_state         = 2
    http_processing_failed     = 3.

m_check_err.

**
**
***data http_rc type i.
*****http status code
***l_client->response->get_status( IMPORTING code = http_rc ).
**
***CLEAR: xml_xstring.
***xml_xstring = client->response->get_data( ).
**
**
**

* Capture the result data
response = l_client->response->get_cdata( ).

* VERY IMPORTANT: close your connection
l_client->close( ).



exit.
aus meiner Privatsammlung "Daten schaffen ... ohne Waffen" :wink:
gruß Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Seite 1 von 1

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und besseren Inhalt:

Aktuelle Forenbeiträge

Ausgabe einer ganzen Work Area?
vor 7 Stunden von ewx 9 / 157

Vergleichbare Themen

XML Datei über HTTP Post versenden
von Sigi » 10.09.2004 12:05
RFC Daten -> Business Connector -> Multipart Http Post
von Adrian » 31.07.2013 10:28
HTTPS POST mit Dateien anhängen
von Adrian » 28.06.2013 12:03
ABAP HTTP-Request
von tohe » 05.02.2015 10:38
dateien mit abap umbenennen
von dennsen » 25.01.2007 11:02