URL kodlama
SKU'lardaki hataları önlemek için URL'ler nasıl kodlanır?
URL kodlaması nedir?
URL'ler yalnızca ASCII karakterlerinden oluşur. Bazı ASCII karakterlerinin URL'lerde özel anlamları varken bazıları yasaktır. Yasak ASCII karakterler veya ASCII olmayan karakterler içeren bir URL ya da özel karakterleri, özel anlamlarına başvurmadan kullanan bir URL istiyorsanız URL'yi kodlamanız gerekir.
Bir URL'yi nasıl kodlarım?
Bir URL'yi kodlamak için her özel, yasak ve ASCII olmayan karakterin UTF-8 kodlamasının her baytını iki basamaklı onaltılık sayıya dönüştürün. Bu iki basamaklı onaltılık sayıların her birinin önüne de yüzde işareti koyun.
Örnek:
URL'larda ters eğik çizgi (\
) karakterine izin verilmez. /products/pricing/v0/listings/Item\1/offers
URI'sını kullanmak istiyorsanız ters eğik çizgiyi kod dışı bırakmanız gerekir. UTF-8'de onaltılık \
değeri 5C olduğundan URI'deki \
, %5C
ile değiştirilir ve /products/pricing/v0/listings/Item%5C1/offers
, kodlanmış URI olur.
Pratikte bu, genelde birçok programlama dilinde mevcut yerleşik işlevlerle programlı olarak yapılır. Java'daki bir örneği aşağıda bulabilirsiniz:
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*();*
}
}
URL kodlaması hakkında daha fazla bilgi için bkz. RFC 3986, Bölüm 2.1. Yüzde Kodlama.
Virgül içeren SKU'lar
SP-API, kodlanmış virgül (
%2C
) değerlerini gerçek virgül (,
) değerlerinden ayırt edemez. Virgül içeren SKU'lardaki virgüller, bağımsız değişkenleri ayıran virgüllerden ayırt edilemediğinden bu SKU'lar, virgülle ayrılmış sorgu parametrelerinde kullanılamaz.Bir SKU'da virgül olduğunda SKU'yu ayrıca aramanız gerekir.
Updated 8 months ago