[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Jan 2012
    Beiträge
    1.120

    Path Parameter im IWS darf keinen Slash "/" enthalten

    Hallo zusammen,

    wir haben einen Webservice mittels des IWS implementiert. Der Endpunkt hat im Prinzip die Form

    .../schadendaten/{versicherungsnummer}

    Die Versicherungsnummer kann eine beliebige Zeichenkette sein.

    Das klappte bisher alles wunderbar. Jetzt hat jemand eine Versicherungsnummer übergeben, die einen Slash (/) enthält. Z.B. "01/4711".

    Diesen Aufruf leitet der IWS nicht weiter. Ist ja auch klar, weil der IWS glaubt, es wäre ein verkehrter Pfad. Deshalb haben wir den Slash escaped (mit %F2). also als Aufruf:

    .../schadendaten/01%F24711

    Das wird aber auch nicht bis zu unserem Programm durchgeleitet.

    Hat jemand eine Idee, wie man dem IWS beibringt, so etwas durchzulassen?

    LG,
    Dieter

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Gar nicht. Der "/" ist im Namen grundsätzlich nicht erlaubt und sollte mit einem Ersatzzeichen, z.B. "_" ersetzt werden. Auch in Windows/Linux wirst du sowas nicht hinbekomment.
    "/" und "" sind inzwischne gleichwertig, sogar bei Windows.
    Statt %F2 kannst du auch xF2 verwenden.
    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

  3. #3
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Vielen Dank für die Info. Ich gehe mal davon aus, dass das dann nur für Path Parameter gilt?
    Es gibt ja diese standardisierten Escape Sequenzen für bestimmte Zeichen. Die würden ja keinen Sinn machen, wenn man sie trotzdem nicht verwenden kann. Ich werde das bei uns dann wohl auf Query Parameter umbauen und hoffen, dass der slash dann kein Problem mehr darstellt.

  4. #4
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Probier mal mit ...%2F...

  5. #5
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Zitat Zitat von Pikachu Beitrag anzeigen
    Probier mal mit ...%2F...
    Wenigstens einer, der aufpasst ...

    Du hast recht, es ist natürlich %2F. Das ist auch der Wert, mit dem ich es probiert habe. Ich habe es nur hier im Forum falsch geschrieben.

  6. #6
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Oder probier mal mit ...%61...

  7. #7
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    %61 wird als "a" durchgereicht. Grundsätzlich klappt das mit den Escape Characters. Nur der Slash macht Probleme.
    Ich werde das auf Query Parameter umstellen.

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Letztlich wird dadurch aber trotzdem wieder ein verbotener "/" für Pfadangaben, da dieser nicht "escaped" werden kann.
    Nicht zu verwecheln mit URL-Parametern bei einem Web-Aufruf. Da kann man alles mit %xx übergeben um eben Sonderzeichen wie ?, =, % usw. im Query-Parameter zu ermöglichen. Dieise Zeichen werden erst nach der Analyse eines Query zurück gewandelt.
    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

  9. #9
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    So, ich kann jetzt Erfolg vermelden.
    Ich habe einen weiteren Endpunkt eingebaut, der die bisherigen Path-Parametern als Query-Parameter empfängt. Jetzt klappt das ganze wunderbar einschließlich eines (per %2F escapten) Slash.

    Vielen Dank für eure Antworten!

    LG, DIeter

  10. #10
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Vielleicht geht noch ...%252F... oder ...%2561... im Pfad?

  11. #11
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Zitat Zitat von Pikachu Beitrag anzeigen
    Vielleicht geht noch ...%252F... oder ...%2561... im Pfad?
    Das sieht gar nicht so schlecht aus: Wenn ich %252F übergebe, geht kommt die Zeichenkette %2F in meinem RPG-Programm an. Das müsste dann noch unescaped werden.
    Wenn ich das richtig verstehe, escapest du damit das Prozentzeichen.

    Es ist etwas merkwürdig, dass die Java-Anwendung, die meinen Webservice nutzt, nicht diese Art des Escapings benutzt. Die Java Kollegen werden ja normalerweise irgendwelche Standard-Escapes benutzten.

    Vielen Dank für deine Lösung!

    Ich habe mein Programm allerdings schon auf Query-Parameter umgebaut.
    Aber ich behalte es mal im Hinterkopf für das nächste Mal.

    LG, Dieter

  12. #12
    Registriert seit
    Nov 2020
    Beiträge
    331
    Zitat Zitat von dschroeder Beitrag anzeigen
    Es ist etwas merkwürdig, dass die Java-Anwendung, die meinen Webservice nutzt, nicht diese Art des Escapings benutzt. Die Java Kollegen werden ja normalerweise irgendwelche Standard-Escapes benutzten.
    Das ist eben kein Standard-Escape. Standard würde bedeuten, dass du sowohl Cleint- als auch Server-Seitig nichts machen musst, da dass die Framworks automatisch übersetzen.

    Die beschriebene Lösung ist am Ende nichts anderes als das was Baldur zuvor geschrieben hat, dass du ein Ersatzzeichen verwendest, dass du dann am Server ja wieder manuell zurück wandeln musst.
    Es ist halt so, dass ein / nicht als Wert in der URL übergeben werden darf. Hierfür würde ich ebenfalls den Weg über den Query-Parameter oder POST gehen.

Similar Threads

  1. CPYTOIMPF mit Zeichenfelder die nur nummerische Zeichen enthalten
    By CHGVAR in forum NEWSboard Programmierung
    Antworten: 10
    Letzter Beitrag: 14-06-17, 16:15
  2. SQL: Anzahl Spalten die einen Wert enthalten -pro Datensatz
    By ExAzubi in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 13-08-15, 08:46
  3. Antworten: 2
    Letzter Beitrag: 02-05-14, 08:42
  4. Wiederverwendbarer ODP (Open Data Path)
    By ThiloSiemon in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 24-09-03, 08:51
  5. QSYSOPR darf nicht mit OpNav
    By Gattringer in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 30-11-01, 09:55

Berechtigungen

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