[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2013
    Beiträge
    69

    HTTPPOSTCLOB Authorization Header send to redirect

    Moin Zusammen,

    ich bin grade dabei ein REST Web Service mit der Funktion SYSTOOLS.HTTPPOSTCLOBVerbose anzusprechen.

    Das Funktioniert soweit auch ganz gut nur habe ich leider das Problem das der Response hinter einem redirect ist.

    Der redirect funktioniert soweit auch nur wird mein HTTP Header mit meine Login Daten leider nicht weitergeleitet. Ich hab im Internet gefunden das man beim HTTP Client extra erlauben muss, nur leider nicht wie das auf der AS400 geht

    Weiß jemand ob man irgendwie einstellen kann das dieser weitergeleitet wird ?

    Hier ist meine Funktion mit der ich es versuche:

    Code:
        SELECT IfNull(responseMsg, ''),    VarChar(IfNull(responseHttpHeader, ''), 1500)
        FROM table (
        SYSTOOLS.HTTPPOSTCLOBVerbose('http://server:9090/api/content/search', 
        '
    ', '{ "stores": ["Test"], "columns": ["Betriebsnummer", "Rechnungsnummer", "Kundennummer"], "conditions":{ "Betriebsnummer" : "01", "Rechnungsnummer" : "1234567" }
    }' )) as Ws;
    Mit freundlichen Grüßen
    Malte

  2. #2
    Registriert seit
    Nov 2020
    Beiträge
    327
    Hallo Malte,

    ich glaube was du suchst ist: CORS.
    Dafür setzt du im HTTP-Header den Key-Value: Access-Control-Allow-Origin *

    Ich würde nebenbei auch auf die SQL Table Function QSYS2.HTTP_POST_VERBOSE umsteigen.
    Diese ist schneller, da sie in C geschrieb wurde.


    Code:
    SELECTt1.*
    FROM
        TABLE (qsys2.HTTP_POST_VERBOSE('http://server:8093/path',
        '{ "p_Firstname" : "Max", "p_Lastname" : "Mustermann" }',
        '{"header" : "Content-Type,application/json", 
          "header" : "Accept,application/json",
          "header" : "Access-Control-Allow-Origin,*"}')
    ) t1
    
    lg Andreas

  3. #3
    Registriert seit
    Jun 2013
    Beiträge
    69
    Moin Andreas,

    danke für die schnelle Antwort, ich hab das jetzt so umgebaut

    SELECT t1.*
    FROM
    TABLE (qsys2.HTTP_POST_VERBOSE('http://server:9090/api/content/search',
    '{"stores":["Belege_2022"],"columns":["Betriebsnummer","Rechnungsnummer","Kundennummer"],"conditions":{"Betriebsnummer":"01","Rechnungsnummer":"123456"}}',
    '{"header" : "Content-Type,application/json",
    "header" : "Authorization,Basic sdsdsadsadasd",
    "header" : "Access-Control-Allow-Origin,*",
    "redirect" : "5"}'
    )
    ) t1

    Leider bekomm ich dann einfach das also Antwort, ich kann zwar dann manuell die nächste Anfrage machen, schöner wäre es aber gleich den response zu bekommen. Das redirect in den Optionen scheint der einfach zu ignorieren
    {
    "HTTP_STATUS_CODE": 303,
    "Date": "Wed, 10 May 2023 12:29:29 GMT",
    "Location": "http://server:9090/api/content/results/0c7e573d1c1a4c95db3aa465713b84a4/pages/first",
    "Access-Control-Allow-Origin": "*",
    "Access-Control-Allow-Headers": "origin, content-type, accept, authorization",
    "Access-Control-Allow-Credentials": true,
    "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, PATCH, OPTIONS, HEAD",
    "Access-Control-Max-Age": 1000000,
    "Content-Length": 0,
    "Server": "Jetty(9.4.44.v20210927)"
    }

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Das hat auch nichts mit CORS zu tun, denn das ist ein Browser-Feature.

    "CORS (Cross-Origin Resource Sharing) beschreibt eine Funktion mit der eine Website auf Daten einer fremden Domain zugreifen kann. CORS ermöglicht, dass Webbrowser domainübergreifend verschiedene Webanwendungen in einer Oberfläche kombinieren können."

    Wenn du die Fehlermeldung mal liest:
    https://www.fairrank.de/glossar/status-code-303/
    bedeutet das wohl, dass in der Antwort "Location" die Adresse der angeforderten Daten nun liegt, die du nur mit einem GET abholen musst.
    Beachte allerdings, dass die Angabe ".../pages/first" auf Folgeseiten hindeuten kann, die dann seitenweise anbzurufen sind.
    Wieviele Seiten es dann sind, steht u.U. an den abgeholten Daten.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Jun 2013
    Beiträge
    69
    Ok ich hatte gehofft das man den Redirect response auch gleich bekommen kann da dieses in SoapUI funktioniert hatte.

    Das mit dem GET Request auf die URL aus Location funktioniert auch.

    Wegen den zusätzlichen Seite hab ich nichts zu befürchten da ich mit meiner Anfrage immer nur ein Ergebnis zurück bekommen sollte.

    Wegen den Funktionen aus der qsys2 musste ich beim letzten Request leider doch wieder die aus der systools nehmen da die Funktion mit BLOB Response noch nicht in der qsys2 verfügbar ist(erst beim nächsten PTF Update)

Similar Threads

  1. SQL HTTPPOSTCLOB in Verbindung mit XMLTABLE
    By oulbrich in forum NEWSboard Programmierung
    Antworten: 19
    Letzter Beitrag: 24-03-21, 10:44
  2. SQL HTTPPOSTCLOB SQLSTATE 38000 - HTTPP0013 Vorzeitiges Dateiende???
    By oulbrich in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 22-03-21, 13:37
  3. Jobnummer / User im Header von Druckdaten
    By hschnaar in forum NEWSboard Drucker
    Antworten: 3
    Letzter Beitrag: 20-11-15, 07:39
  4. Authorization Problem nach ändern der Primary Group
    By ChrisX in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 11-10-06, 15:31
  5. RSMail-Send (SMTP)
    By RolandStiel in forum NEWSboard Server Software
    Antworten: 0
    Letzter Beitrag: 03-07-01, 16:14

Tags for this Thread

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •