PDA

View Full Version : Path Parameter im IWS darf keinen Slash "/" enthalten



Seiten : [1] 2

dschroeder
30-10-23, 17:19
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

Fuerchau
30-10-23, 17:32
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.

dschroeder
31-10-23, 08:05
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.

Pikachu
31-10-23, 08:17
Probier mal mit ...%2F...

dschroeder
31-10-23, 08:34
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.

Pikachu
31-10-23, 08:51
Oder probier mal mit ...%61...

dschroeder
31-10-23, 08:57
%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.

Fuerchau
31-10-23, 09:09
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.

dschroeder
31-10-23, 11:36
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

Pikachu
02-11-23, 08:51
Vielleicht geht noch ...%252F... oder ...%2561... im Pfad?