Codifica URL
Come codificare gli URL per evitare errori con gli SKU.
Cos'è la codifica degli URL?
Un URL è composto solo da caratteri ASCII. Alcuni caratteri ASCII hanno significati speciali negli URL, mentre altri sono vietati. Se desideri un URL con caratteri ASCII proibiti o non ASCII oppure un URL che utilizza caratteri speciali senza richiamarne il significato speciale, è necessario codificare l'URL.
Come posso codificare un URL?
Per codificare un URL, converti ogni byte della codifica UTF-8 di ogni carattere speciale, proibito e non ASCII in un numero esadecimale a due cifre e inserisci un segno di percentuale prima di ciascuno di questi numeri esadecimali a due cifre.
Esempio:
Gli URL non consentono la barra rovesciata (\
). Se vuoi usare l'URI /products/pricing/v0/listings/Item\1/offers
, devi utilizzare la barra rovesciata come carattere di escape. Il valore esadecimale di \
in UTF-8 è 5C, quindi \
è sostituito da %5C
nell'URI, creando /products/pricing/v0/listings/Item%5C1/offers
come URI codificato.
In pratica, questo viene spesso fatto in modo programmatico con funzioni integrate disponibili in molti linguaggi di programmazione. Ti illustriamo di seguito un esempio 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*();*
}
}
Per ulteriori informazioni sulla codifica degli URL, consulta RFC 3986, Sezione 2.1. Codifica percentuale.
SKU con virgole
SP-API non è in grado di distinguere i valor della virgola codificata (
%2C
) da quelli letterali (,
). Ciò impedisce l'utilizzo di SKU con virgole nei parametri di query delimitati da virgole, poiché le virgole in tali SKU non possono essere distinte dalle virgole che separano gli argomenti.Se in uno SKU è presente una virgola, è necessario cercare lo SKU singolarmente.
Updated 8 months ago