Login auf Website

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
1 Beitrag • Seite 1 von 1
1 Beitrag Seite 1 von 1

Login auf Website

Beitrag von DerAndi (ForumUser / 20 / 0 / 0 ) »
Hallo ABAP'ler,

bin dabei ein ABAP Report zu schreiben der im Hintergrund eine Website aufrufen soll (das funktioniert bereits).
Auf dieser sollen dann die Felder für User und Passwort ausgefüllt werden und anschließend soll eine weitere URL
aufgerufen werden (diese startet einen Prozess auf dem Webserver).

Den Aufruf der URL erzeuge ich mit der Methode "create_by_url" aus der Klasse "cl_http_client". Im Debugger kann
ich in der XML-Ansich die Login Seite der Website sehen. Das aufrufen der Seite hat also funktioniert. Anschließend
versuche ich über die Methode "set_form_fields" die zwei Felder auf der Website zu füllen....was leider nicht
funktioniert (ich sehe nach dem Versuch wieder die Login Seite, ohne übergebene Werte).

Hat jemand einen Tipp für mich? Eine Authentifizierung über Basic Authentication soll wohl auch möglich sein, jedoch
hab ich dazu nichts gefunden (ist eben KEIN SAP System auf diese Prüfung statt findet).

Code: Alles auswählen.

CALL METHOD cl_http_client=>create_by_url
  EXPORTING
    url               = url
  IMPORTING
    client             = client
  EXCEPTIONS
    argument_not_found = 1
    internal_error     = 2
    plugin_not_active  = 3
    OTHERS             = 4.

IF sy-subrc <> 0.
  WRITE: / 'create failed, subrc = ', sy-subrc.
  EXIT.
ENDIF.

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

CALL METHOD client->request->set_method(
  if_http_request=>co_request_method_get ).

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

IF sy-subrc <> 0.
  CALL METHOD client->get_last_error
    IMPORTING
      code    = subrc
      MESSAGE = errortext.
  WRITE: / 'communication_error( send )',
         / 'code: ', subrc, 'message: '.
  EXIT.
ENDIF.

CALL METHOD client->receive
  EXCEPTIONS
    http_communication_failure = 1
    http_invalid_state         = 2
    http_processing_failed     = 3
    OTHERS                     = 4.

IF sy-subrc <> 0.
  CASE sy-subrc .
    WHEN 1.
      error_msg = 'http_communication_failure'.
    WHEN 2.
      error_msg = 'http_invalid_state'.
    WHEN 3.
      error_msg = 'http_processing_failed'.
    WHEN OTHERS.
      error_msg = 'other http error'.
  ENDCASE.
ENDIF.

* Return Code ist 200, Status OK
**************************************
client->response->get_status( IMPORTING code = http_status_code
                                               reason = http_message ).

" Im Debugger kann ich hier die Login Seite sehen
**********************************************************
l_rstringx =  client->response->get_cdata( ).

wa_im_form_fields-name = 'user'.
wa_im_form_fields-value = 'XXXX'.
APPEND wa_im_form_fields TO it_im_form_fields.
  
wa_im_form_fields-name = 'passwd'.
wa_im_form_fields-value = 'XXXX'.
APPEND wa_im_form_fields TO it_im_form_fields.

* hier der Versuch die Felder auf der Website zu füllen
***************************************************************
client->request->set_form_fields( it_im_form_fields ).

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

CALL METHOD client->receive
  EXCEPTIONS
    http_communication_failure = 1
    http_invalid_state         = 2
    http_processing_failed     = 3
    OTHERS                     = 4.

client->response->get_status( IMPORTING code = http_status_code
                                               reason = http_message ).

* Im Debugger kann ich hier die Login Seite sehen. Leider ohne übergebene Werte
************************************************************************************************
l_rstringx =  client->response->get_cdata( ).

CALL METHOD client->close
  EXCEPTIONS
    http_invalid_state = 1
    OTHERS             = 2.

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


Seite 1 von 1

Vergleichbare Themen

1
Antw.
11204
Views
ITS - Handgerät will Website runterladen statt darstellen
von TanteAbap » 27.08.2014 11:03 • Verfasst in Web Application Server
4
Antw.
3181
Views
Login-Script?
von Anfänger » 29.11.2010 13:35 • Verfasst in ABAP® für Anfänger
0
Antw.
1351
Views
Login Userexit
von masterw » 24.11.2006 00:02 • Verfasst in ABAP® Core
0
Antw.
6953
Views
LogIn SapGUI aus Web Dynpro (SSO)
von Phil » 16.11.2010 10:24 • Verfasst in Web Application Server
4
Antw.
4826
Views
Login Daten Management
von sap_enthusiast » 13.04.2025 14:08 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag

DerAndi
Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Zeit in UTC umwandeln
vor 11 Stunden von A6272 10 / 5375
Substitution zum Zeitpunkt 60
vor 5 Tagen von irene 1 / 1161
CDS View Erweitern mit Hierarchie
vor 5 Tagen von Interger 1 / 3481
Probleme beim Debuggen Einkaufsformular
vor einer Woche von GünterL gelöst 5 / 34382

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

Zeit in UTC umwandeln
vor 11 Stunden von A6272 10 / 5375
Substitution zum Zeitpunkt 60
vor 5 Tagen von irene 1 / 1161
CDS View Erweitern mit Hierarchie
vor 5 Tagen von Interger 1 / 3481
Probleme beim Debuggen Einkaufsformular
vor einer Woche von GünterL gelöst 5 / 34382

Unbeantwortete Forenbeiträge

Substitution zum Zeitpunkt 60
vor 5 Tagen von irene 1 / 1161
CDS View Erweitern mit Hierarchie
vor 5 Tagen von Interger 1 / 3481
Interactive Forms dynamische Tabelle
vor einer Woche von Gottschall 1 / 18375
Intervall mit Beziehungswissen füllen
vor 3 Wochen von wolli 1 / 31840