info@selectline.de | +49 391 5555-080 | SelectLine – steht jedem Unternehmen

Sonderzeichen in der URL

Sonderzeichen in dem URL Pfad werden von der API decodiert.
Die Encodierung der Sonderzeichen erfolgt nicht.

Das bedeutet, dass zum Beispiel für die folgenden Route der, zwischen den Ziffern befindliche, Slash '/' nicht encodiert wird.
https://Controller/Action/123/456

Dies löst unter anderem eine Exception aus, weil der Slash '/' als Teil des Pfades interpretiert wird.

Für den QueryString erfolgt bereits die Encodierung.
Ein QueryString ist der Abschnitt einer URL hinter dem Fragezeichen '?'.
Mit diesem QueryString kann die Suche, z.B. nach Artikeln, eingeschränkt werden.

Abschnitt der URL Beschreibung
GET Http Methode
/Articles/Stock Route
? Einleitung für den QueryString
searchTerm=123/456 QueryString

Im folgenden QueryString wird der Slash '/' mit %2F encodiert.
GET /Articles/Stock?searchTerm=123/456

Dieser QueryString wird zu:
GET /Articles/Stock?searchTerm=123%2F456

Damit auch der URL Pfad encodiert wird, muss dies manuell erfolgen.
Dazu werden in der SelectLine API sämtliche Parameter, die direkt in der URL angegeben werden können, decodiert.
Die Encodierung macht aus '123/456' den Wert '123~2F456'. Die Decodierung wandelt diesen Wert wieder zurück.

Im Gegensatz zu dem erwähnten QueryString werden die Parameter hierfür nicht mit dem Prozentzeichen encodiert, sondern mit der Tilde '~'.
Der Grund dafür ist, dass man in der Route der HTTP Anfrage kein Prozent angeben darf.

Im folgenden Pfad einer URL wird der Slash '/' mit ~2F encodiert.
GET /Articles/123/456

Dieser Pfad wird zu:
GET /Articles/123~2F456

Um ein nicht erlaubtes Zeichen für die SelectLine API korrekt zu encodieren, müssen folgende Schritte abgearbeitet werden:

  1. Der hexadezimale Wert des nicht erlaubten Zeichens muss aus der ASCII Tabelle ermittelt werden.
    Zum Beispiel: Der hexadezimale Wert für Slash '/' ist 2F
  2. Dem ermittelten hexadezimalen Wert die Tilde '~' voranstellen.
    Zum Beispiel: ~2F
  3. Das nicht erlaubte Zeichen durch die gebildete neue Zeichenkette ersetzen.
    Zum Beispiel: 123~2F456

Die Tilde '~' darf daher nicht als Zeichen in Datensatzschlüsseln verwendet werden, wenn die Datensatzschlüssel über die API zum Einsatz kommen sollen.
Zu beachten ist, dass andere Sonderzeichen wie z.B. Prozent '%' ohne Encodierung und Decodierung ein ungewünschtes Verhalten auslösen.
Diese Sonderzeichen könnten z.B. als Teil der URL eingestuft werden.

Folgende Zeichen werden derzeit in der API decodiert:

Zeichen Beschreibung Hexadezimale Werte
/ Schrägstrich (Slash) 2F
\ umgekehrter Schrägstrich (Backslash) 5C
% Prozent 25
# Raute 23
" Anführungszeichen 22
& Kaufmännisches Und 26
? Fragezeichen 3F
= Gleichheitszeichen 3D
Leerzeichen 20
! Ausrufezeichen 21
* Sternchen 2A
$ Dollarzeichen 24
' einfaches Anführungszeichen 27
( runde Klammer auf 28
) runde Klammer zu 29
+ Plus 2B
: Doppelpunkt 3A
; Semikolon 3B
@ At 40
[ eckige Klammer auf 5B
] eckige Klammer zu 5D
, Komma 2C
. Punkt 2E
Ä Ä C4
Ö Ö D6
Ü Ü DC
Γ Gamma 393
Δ Delta 394
Θ Theta 398
Λ Lambda 39B
Ξ Xi 39E
Π Pi 3A0
Σ Sigma 3A3
Φ Phi 3A6
Ψ Psi 3A8
Ω Omega 3A9