Codage d'URL
Comment encoder les URL pour éviter les erreurs avec les SKU.
Qu'est-ce que l'encodage d'URL ?
Une URL est composée uniquement de caractères ASCII. Certains caractères ASCII ont une signification particulière dans les URL, tandis que d'autres sont interdits. Si vous souhaitez créer une URL contenant des caractères ASCII interdits ou des caractères non ASCII, ou une URL qui utilise des caractères spéciaux sans invoquer leur signification particulière, vous devez encoder l'URL.
Comment encoder une URL ?
Pour encoder une URL, convertissez chaque octet de l'encodage UTF-8 de chaque caractère spécial, interdit et non ASCII en un nombre hexadécimal à deux chiffres et placez un signe de pourcentage devant chacun de ces nombres hexadécimaux à deux chiffres.
Exemple :
Les URL n'autorisent pas la barre oblique inverse (\
). Si vous souhaitez utiliser l'URI /products/pricing/v0/listings/Item\1/offers
, vous devez remplacer la barre oblique inverse. La valeur hexadécimale de \
en UTF-8 est 5C, donc \
est remplacé par %5C
dans l'URI, ce qui fait de /products/pricing/v0/listings/Item%5C1/offers
l'URI encodé.
En pratique, cela se fait le plus souvent par programmation avec des fonctions intégrées disponibles dans de nombreux langages de programmation. Voici un exemple en 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*();*
}
}
Pour plus d'informations sur l'encodage des URL, reportez-vous au document RFC 3986, Section 2.1. Percent Encoding.
SKU avec virgules
SP-API n'est pas en mesure de distinguer les valeurs avec des virgules encodées (
%2C
) des valeurs avec des virgules littérales (,
). Cela empêche l'utilisation de SKU contenant des virgules dans les paramètres de requête séparés par des virgules, car les virgules de ces SKU ne peuvent pas être distinguées des virgules séparant des arguments.Lorsqu'une virgule est présente dans un SKU, vous devez rechercher ce SKU individuellement.
Updated 8 months ago