URL 编码
如何对网址进行编码以避免 SKU 出错。
什么是 URL 编码?
URL 仅由 ASCII 字符组成。有些 ASCII 字符在 URL 中具有特殊含义,有些则是禁止使用的。如果要使用含有禁止使用的 ASCII 字符或非 ASCII 字符的 URL,或使用特殊字符但不调用其特殊含义的 URL,就必须对 URL 进行编码。
如何对网址进行编码?
要对 URL 进行编码,请将每个特殊字符、禁止使用字符和非 ASCII 字符的 UTF-8 编码的每个字节转换为两位数的十六进制数,并在每个两位数的十六进制数前加上百分号。
示例:
URL 不允许使用反斜杠 (\
) 字符。如果要使用 URI /products/pricing/v0/listings/Item\1/offers
,则必须转义反斜线。UTF-8 中\
的十六进制值为 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
此页面对您有帮助吗?