im Zuge einer Anforderung habe ich die Notwendigkeit einen HTTP-Request an eine Google-API zu senden und von dort die JSON-Response entgegenzunehmen und zu verarbeiten.
Dafür baue ich mir die URL im Coding zusammen und füge den vorhandenen API-Key an. Sende ich nun die Anfrage über ein instanziiertes Objekt der Klasse "cl_http_client=>create_by_url" an den Server und nehme das Ergebnis mittels "cl_http_client->response->get_cdata( )." entgegen, so ist der vorhandene JSON-String unter Umständen, jedoch nicht immer, ein anderer als bei manuellem Aufruf der gebildeten URL im Browser.
"Jedoch nicht immer" bezieht sich auf verschiedene dynamisch zusammengebaute URLs. Ich bekomme daher bspw. bei einer URL im SAP immer das gleiche (falsche) Ergebnis. Bei wiederum einer anderen ein richtiges Ergebnis, wie es auch bei manuellem Einfügen im Browser ausgegeben wird.
Die im Browser eingefügte URL entspricht daher exakt jener, wie sie im Coding zusammengebaut wird. Ich kopiere diese aus dem Debugger in die URL-Leiste. Die abweichenden Ergebnisse sind für mich nicht nachvollziehbar.
Evtl. gibt es noch andere Abhängigkeiten (z.B. Zeit der Abfrage, Quelle/IP des abfragenden Systems, Headerzeilen des HTTP Requests etc.). Wenn du die Möglichkeit dazu hast, kannst du ja mal mit Wireshark die Request/Response Pakte der beiden Abfragen (CL_HTTP_CLIENT und dein Browser) mitschneiden und vergleichen.
Mir fallen noch spontan unterschiedliche Codepages, Content-Types und Spracheinstellungen ein. Diverse Browser schicken hier ohne zutun des Benutzers ihre Standardeinstellungen mit. Das sieht man am ehesten im Header des Requests. Dafür braucht man aber, glaube ich, gar nicht mal den Wireshark. EDGE/Chrome und Firefox sollten das in den Developertools bereits anbieten. In SAP kann man die Felder aus dem Request Header mit IF_HTTP_CLIENT->REQUEST->GET_HEADER_FIELDS zur Laufzeit (z.B. im Debugger) auslesen.
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.
danke für eure Antworten. Da waren auf jeden Fall ein paar gute Ideen dabei, die ich ausprobiert habe. Leider ist mein Problem noch nicht behoben. Da es nach dem bisherigen Wissensstand nur vereinzelt bei bestimmten Anfragen auftritt, werden wir es weiter beobachten.