To pytanie, które kilka razy zostało poproszone o stackoverflow. Ale nie mogłem znaleźć rozwiązania dla mojego konkretnego scenariusza. We wszystkich przypadkach rozwiązanie jest zapisanie danych JSON w UTF-8; Aby dzwoniący otrzyma ważny JSON.

W moim przypadku z bootem Spring i RestTemplate otrzymuję JSON jako odpowiedź na żądanie API, które wprowadzam do serwera trzeciego. Nie mam żadnej kontroli, aby zmienić tę stronę.

Tak więc jest jakikolwiek sposób, że mogę zrobić coś z Myside jako koniec odbiorcy, aby naprawić następujący problem.

JsonparseException: Nieprawidłowy UTF-8 Start Bajt 0x91

Poniżej znajduje się, jak kodowałem moją prośbę.

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);

----
----
 HttpEntity<HashMap> request = new HttpEntity(dataMap, headers);

Dziękuję Ci..!

0
vigamage 15 październik 2020, 13:48

1 odpowiedź

Najlepsza odpowiedź

Dostałem to rozwiązany.

Musiałem najpierw zaakceptować odpowiedź jako łańcuch, a następnie wykonaj odpowiednio manipulację ciągu zgodnie z formatem, które chcę być.

String responseJsonString = restTemplate.postForObject(url, request, String.class);

Mam nadzieję, że może pomóc komuś.

0
vigamage 27 październik 2020, 11:54