Boa tarde!
Estou com um problema em algumas requisições de REST que estão retornando erro 500. Investigando um pouco mais, vi que está relacionado a utilização de caracteres especiais no json body.
Exemplo:
{
"nome": "João"
}
Tratando esse json com a função noAcento() tive sucesso na requisição (apesar de perder a acentuação dos nomes em geral)... mas tem um outro caso que não encontrei saída:
{
"nome": "João 1º"
}
Após utilizar o noAcento obtenho:
{
"nome": "Joao 1º"
}
Ao enviar esse body o protheus calcula o len como 18 e adiciona essa info no Content-length, causando erro 500 devido a diferença de comprimento da string (content-length diferente do tamanho do json body)... No Postman é calculado como 19, e lá a requisição é feita com sucesso. Joguei a string no notepad++ e lá também é calculado igual o postman (19)
Alguém teve algum problema parecido? Tentei tratamento com encode utf8 mas bagunça um pouco mais a string. Parece que o calculo do len não calcula corretamente quando existe ª e º.
Obrigado
Rodrigo, nesse caso você é o client ou o server? Tem um exemplo para reprodução do problema?
— Daniel Mendes 13 de Nov de 2020