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 / 1167 / 22 / 263 ) » 18.07.2013 23:56
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 ) » 19.07.2013 08:44
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 / 1167 / 22 / 263 ) » 19.07.2013 10:01
...
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 ) » 19.07.2013 14:17
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 / 1167 / 22 / 263 ) » 19.07.2013 15:40
... (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 / 1167 / 22 / 263 ) » 21.07.2013 17:59
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 ) » 23.07.2013 16:37
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


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

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