URLエンコーディング
SKUのエラーを回避するためのURLのエンコード方法。
URLエンコーディングとは
URLはASCII文字のみで構成されます。ASCII文字には、URL内で特別な意味を持つものもあれば、禁止されているものもあります。禁止されているASCII文字やASCII以外の文字を含むURL、または特別な意味を示さずに特殊文字を使用するURLが必要な場合は、URLをエンコードする必要があります。
URLをエンコードするにはどうすればよいですか?
URLをエンコードするには、特殊文字、禁止文字、およびASCII以外の文字のUTF-8エンコーディングの各バイトを2桁の16進数に変換し、これらの2桁の16進数のそれぞれの前にパーセント記号を付けます。
例:
URLにはバックスラッシュ(\
)文字を使用できません。URI /products/pricing/v0/listings/Item\1/offers
を使用する場合、バックスラッシュをエスケープする必要があります。UTF-8での\
の16進数値は5Cなので、\
はURIで%5C
に置き換えられ、/products/pricing/v0/listings/Item%5C1/offers
はエンコードされたURIになります。
実際には、これは、多くのプログラミング言語で利用できる組み込み関数を使用してプログラムで行われることがほとんどです。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*();*
}
}
For more information about URL encoding, refer to RFC 3986, Section 2.1. Percent Encoding.
カンマを含んだSKU
SP-APIは、エンコードされたカンマ(
%2C
)値とリテラルカンマ(,
)値を区別できません。このため、カンマを含んだSKUはカンマ区切りのクエリーパラメーターで使用できません。こうしたSKU内のカンマを、引数を区切るカンマと区別できないためです。SKUにカンマがある場合は、SKUを個別に検索する必要があります。
Updated 8 months ago