HTTPS POST mit Dateien anhängen

Getting started ... Alles für einen gelungenen Start.
22 Beiträge • Vorherige Seite 2 von 2 (current)
22 Beiträge Vorherige Seite 2 von 2 (current)

Re: HTTPS POST mit Dateien anhängen

Beitrag von Tron (Top Expert / 1251 / 26 / 306 ) »
Moin.
Du kannst unter
http://info.gate2app.com/test.sample
meine Testseite benutzen. Den Content Part habe ich heute nicht mehr geschafft.
Kommt Morgen.
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.


Re: HTTPS POST mit Dateien anhängen

Beitrag von Adrian (Specialist / 126 / 61 / 0 ) »
Vielen Dank Jens,

wie bekomme ich das encoding raus aus meinem Abap code ?

Grüße Adrian

Re: HTTPS POST mit Dateien anhängen

Beitrag von Tron (Top Expert / 1251 / 26 / 306 ) »
...
meinst Du : "Accept-Encoding : gzip " ?
<:: 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.

Re: HTTPS POST mit Dateien anhängen

Beitrag von Adrian (Specialist / 126 / 61 / 0 ) »
ja das ist in meiner Vorgabe von nicht mit dabei.

Grüße Adrian

Re: HTTPS POST mit Dateien anhängen

Beitrag von Tron (Top Expert / 1251 / 26 / 306 ) »
... (ohne es getestet zu haben)

Code: Alles auswählen.

CALL METHOD l_client->request->set_compression
  EXPORTING
    disable_extended_checks = ABAP_FALSE
    options                 = 0. " oder 4 ?
gruß Jens
Zuletzt geändert von Tron am 28.07.2013 12:04, insgesamt 1-mal geändert.
<:: 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.

Re: HTTPS POST mit Dateien anhängen

Beitrag von Tron (Top Expert / 1251 / 26 / 306 ) »
Moin.
.... so, erstmal neue Abap Version:

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*& Report  YBC_ARCHIVELINK_MULTI                                       *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  ybc_archivelink_multi                                       .
CONSTANTS crlf(2) VALUE %_cr_lf.

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_entity TYPE REF TO if_http_entity,
l_client    TYPE REF TO if_http_client ,
http_url       TYPE string,
l_content      TYPE xstring.

* Build the url string based on input
*http_url = 'http://192.168.216.54/HttpHandler/test.sample?Q=test'.
*http_url = 'http://192.168.216.54/Echo/test.sample?Q=test'.
http_url = 'http://info.gate2app.com/test.sample?Q=test'.

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

* Wir arbeiten für die Post
l_client->request->set_header_field( name = '~request_method' value = 'POST' ).

* Setzte Header Parameter für MULTIPART - Übertragung
CALL METHOD l_client->request->set_header_field
  EXPORTING
    name  = 'Content-type'
    value = 'multipart/mixed'.

*=================================================

* Erzeuge ersten MULTIPART Abschnitt
CALL METHOD l_client->request->add_multipart
  RECEIVING
    entity = l_entity.

* Art des Inhalts im aktuellen Abschnitt
CALL METHOD l_entity->set_header_field
  EXPORTING
    name  = 'Content-type'
    value = 'application/x-www-form-urlencoded'.

* Der Inhalt
DATA l_test TYPE string.
l_test =
'AppVersion=1.0&;AcceptUPSLicenseAgreement=Yes&ResponseType=application/x-ups-pld&VersionNumber=V4R1&UserId=xxx&Password=xxx'.

CONCATENATE l_test crlf INTO l_test.

* Hänge den Inhalt in den aktuellen Abschnitt
CALL METHOD l_entity->set_cdata
  EXPORTING
    data = l_test.

*=================================================

* Erzeuge zweiten MULTIPART Abschnitt
CALL METHOD l_client->request->add_multipart
  RECEIVING
    entity = l_entity.

* Art des Inhalts im aktuellen Abschnitt
CALL METHOD l_entity->set_header_field
  EXPORTING
    name  = 'Content-type'
    value = 'application/x-ups-binary'.

* Der Inhalt
l_test =
'020082 2.0 2002101700000000000010500 000000001*AA0A1754 US 1234567002000001*BA1z1234560100002352 00001+0000000000000010 +0000000000000000LBS01PRE10 '.

CONCATENATE l_test crlf INTO l_test.

* Hänge den Inhalt in den aktuellen Abschnitt
CALL METHOD l_entity->set_cdata
  EXPORTING
    data = l_test.




*=================================================

* sending/receiving und FEUER FREI
CALL METHOD l_client->send
  EXCEPTIONS
    http_communication_failure = 1
    http_invalid_state         = 2
    http_processing_failed     = 3
    OTHERS                     = 4.

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 ).

CALL METHOD l_client->response->get_data
*  EXPORTING
*    OFFSET             = 0
*    LENGTH             = -1
*    VIRUS_SCAN_PROFILE =
  RECEIVING
    data               = l_content.

DATA xlen TYPE i.
DATA traw TYPE TABLE OF logdata.
DATA ffile TYPE string VALUE 'c:\tmp\httpBody.txt'.

CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
  EXPORTING
    buffer          = l_content
    append_to_table = ' '
  IMPORTING
    output_length   = xlen
  TABLES
    binary_tab      = traw.


CALL METHOD cl_gui_frontend_services=>gui_download
  EXPORTING
    bin_filesize              = xlen
    filename                  = ffile
    filetype                  = 'BIN'
*    APPEND                    = SPACE
*    WRITE_FIELD_SEPARATOR     = SPACE
*    HEADER                    = '00'
*    TRUNC_TRAILING_BLANKS     = SPACE
*    WRITE_LF                  = 'X'
*    COL_SELECT                = SPACE
*    COL_SELECT_MASK           = SPACE
*    DAT_MODE                  = SPACE
*    CONFIRM_OVERWRITE         = SPACE
*    NO_AUTH_CHECK             = SPACE
*    CODEPAGE                  = SPACE
*    IGNORE_CERR               = ABAP_TRUE
*    REPLACEMENT               = '#'
*    WRITE_BOM                 = SPACE
*    TRUNC_TRAILING_BLANKS_EOL = 'X'
*    WK1_N_FORMAT              = SPACE
*    WK1_N_SIZE                = SPACE
*    WK1_T_FORMAT              = SPACE
*    WK1_T_SIZE                = SPACE
*  IMPORTING
*    FILELENGTH                =
  CHANGING
    data_tab                  = traw
  EXCEPTIONS
    file_write_error          = 1
    no_batch                  = 2
    gui_refuse_filetransfer   = 3
    invalid_type              = 4
    no_authority              = 5
    unknown_error             = 6
    header_not_allowed        = 7
    separator_not_allowed     = 8
    filesize_not_allowed      = 9
    header_too_long           = 10
    dp_error_create           = 11
    dp_error_send             = 12
    dp_error_write            = 13
    unknown_dp_error          = 14
    access_denied             = 15
    dp_out_of_memory          = 16
    disk_full                 = 17
    dp_timeout                = 18
    file_not_found            = 19
    dataprovider_exception    = 20
    control_flush_error       = 21
    not_supported_by_gui      = 22
    error_no_gui              = 23
    OTHERS                    = 24.

IF sy-subrc <> 0.
ENDIF.

break sapuser.
Da der Inhalt durchaus nicht darstellbare Zeichen enthallten kann, sollte man POST/PUT
nicht mit einem Webbrowser durchführen.
Der Body des Requests wird auf dem PC abgespeichert (ggf. Pfad anpassen).

gruß Jens
siehe auch http://help.sap.com/saphelp_em70/helpda ... ameset.htm
Zuletzt geändert von Tron am 28.07.2013 13:00, insgesamt 2-mal geändert.
<:: 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.

Re: HTTPS POST mit Dateien anhängen

Beitrag von Adrian (Specialist / 126 / 61 / 0 ) »
Hi Jens,

er sagt immer noch in der Resonse AppVersion missing.
Das encoding habe ich aus nicht rausgebracht.

Kannst du mir deine E-Mail Adresse schicken dann kann ich dir die Response schicken.

Hier kann ich irgendwie nix hochladen das wird alles als Angriffsversuch identifiziert.

Grüße Adrian


Über diesen Beitrag


ABAP & SAP eBook Flatrate von Espresso Tutorials Sponsorlink
Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Vergleichbare Themen

HTTP-Post von Dateien in ABAP
von Abrissbirne » 17.09.2012 01:44
HTTPS Verschlüsselung?
von ABAP_User » 20.06.2011 23:20
Business Connector und https !?!
von Gast » 21.12.2004 08:00
MVC, handle_event, Formular POST
von Gast » 08.03.2004 10:51