Codificação de URL

Como codificar URLs para evitar erros com SKUs.

O que é codificação de URL?

Um URL consiste somente em caracteres ASCII. Alguns caracteres ASCII têm significados especiais em URLs e outros são proibidos. Se você quiser um URL com caracteres ASCII proibidos ou caracteres que não são ASCII, ou um URL que use caracteres especiais sem invocar seu significado especial, você deve codificar o URL.

Como faço para codificar um URL?

Para codificar um URL, converta cada byte da codificação UTF-8 de cada caractere especial, proibido e não ASCII em um número hexadecimal de dois dígitos, e coloque um sinal de porcentagem antes de cada um desses números hexadecimais de dois dígitos.

Por exemplo:

Os URLs não permitem o caractere de barra invertida (\). Se você quiser usar o URI /products/pricing/v0/listings/Item\1/offers, deverá escapar a barra invertida. O valor hexadecimal de \ em UTF-8 é 5C, então \ é substituído por %5C no URI, fazendo /products/pricing/v0/listings/Item%5C1/offers o URI codificado.

Na prática, isso geralmente é feito de forma programática com funções integradas disponíveis em várias linguagens de programação. Aqui está um exemplo em 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*();* } }

Para obter mais informações sobre codificação de URL, consulte RFC 3986, Seção 2.1. Codificação percentual.

❗️

SKUs com vírgulas

A SP-API não consegue distinguir os valores de vírgula codificada (%2C) dos valores de vírgula literal (,). Isso impede que códigos SKUs com vírgulas sejam usados em parâmetros de consulta delimitados por vírgulas, pois as vírgulas nesses SKUs não podem ser diferenciadas dos argumentos separados por vírgulas.

Quando há uma vírgula em um código SKU, você deve pesquisá-lo individualmente.


Esta página ajudou você?