URL-Kodierung
Wie Sie URLs kodieren, um Fehler bei SKUs zu vermeiden.
Was ist URL-Kodierung?
Eine URL besteht nur aus ASCII-Zeichen. Einige ASCII-Zeichen haben in URLs eine besondere Bedeutung und einige andere sind verboten. Wenn Sie eine URL mit verbotenen ASCII-Zeichen oder Nicht-ASCII-Zeichen oder eine URL, die Sonderzeichen verwendet, ohne deren besondere Bedeutung aufzurufen, wünschen, müssen Sie die URL kodieren.
Wie kodiere ich eine URL?
Um eine URL zu kodieren, wandeln Sie jedes Byte der UTF-8-Kodierung jedes Sonderzeichens, verbotenen Zeichens und Nicht-ASCII-Zeichens in eine zweistellige Hexadezimalzahl um und setzen ein Prozentzeichen vor jede dieser zweistelligen Hexadezimalzahlen.
Beispiel:
URLs lassen das Schrägstrich-Zeichen (\
) nicht zu. Wenn Sie URI /products/pricing/v0/listings/Item\1/offers
verwenden möchten, müssen Sie den Schrägstrich auslassen. Der hexadezimale Wert von \
in UTF-8 ist 5C, so dass \
im URI durch %5C
ersetzt wird, was /products/pricing/v0/listings/Item%5C1/offers
zum kodierten URI macht.
In der Praxis wird dies häufig mit integrierten Funktionen, die in vielen Programmiersprachen verfügbar sind, programmgesteuert durchgeführt. Hier ein Beispiel in Java:
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.io.UnsupportedEncodingException*;*
// Method to encode a SKU using `UTF-8` encoding scheme
private static String encodeSKU(String sSKU) {
try {
return URLEncoder.encode(sSKU, StandardCharsets.UTF_8.toString());
} catch (UnsupportedEncodingException ex) {
e*.*printStackTrace*();*
}
}
Weitere Informationen zur URL-Kodierung finden Sie in RFC 3986, Abschnitt 2.1. Prozentuale Kodierung.
SKUs mit Kommas
SP-API ist nicht in der Lage, kodierte Komma-Werte (
%2C
) von literalen Komma-Werten (,
) zu unterscheiden. Dies verhindert, dass SKUs mit Kommas in kommagetrennten Abfrageparametern verwendet werden können, da die Kommas in diesen SKUs nicht von Kommas zur Trennung von Argumenten unterschieden werden können.Wenn ein Komma in einer SKU vorhanden ist, müssen Sie die SKU einzeln suchen.
Updated 8 months ago