Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The encoding was using the system's default encoding. On systems where the default is not UTF-8, the requests failed with 400 whem there was words with accents, for exemple in the custormer's name.
Caso real em que a falha ocorreu:
Usamos a biblioteca para criar um pedido com pagamento em que o nome do customer tinha acento, como por exemplo "José Assunção". A criação do pedido falhava com 400 neste caso sem nenhuma outra informação no MErrorException. Porém quando o nome do customer não tinha acentos, como em "Rita Maia", o pedido era criado com sucesso.
O sistema em produção estava rodando em uma máquina virtual windows na nuvem.
Os pedidos também eram realizados com sucesso, independente da existência ou não de acentuação nos nomes, quando fazíamos testes a partir de uma máquina linux.
Analisando vimos que o encoding padrão do java no sistema windows era o ANSI, e na máquina linux era o UTF-8. No código vimos que o header "content-type" era sempre configurado com UTF-8. Porém a obtenção do array de bytes do corpo da requisição não especificava o encoding, utilizando o padrão do sistema. Alteramos o código para especificar o encoding de UTF-8 ao obter os bytes do corpo da requisição.