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を個別に検索する必要があります。


このページは役に立ちましたか?