я вызываю GET Api (API ModernMTT) с OkHttp (последняя версия), моя проблема в том, что ответ от сервера не в UTF-8, а в процентном кодировании, и я не понимаю, почему, я пытаюсь установить MINE в UTF-8 без результата. От CURL и Postman сервер отвечает хорошо. Значит проблема на OkHttp. Мой код
public static String translate(String string) throws IOException {
OkHttpClient client = new OkHttpClient().newBuilder().addInterceptor(new FixEncodingInterceptor()).build();
Request request = new Request.Builder()
.url("https://api.modernmt.eu/translate?source=" + sourceLanguage + "&target=" + targetLanguage + "&q=" + string)
.method("GET", null)
.addHeader("MMT-ApiKey", apiKey)
.build();
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
String stringTranslated= Objects.requireNonNull(response.body()).string();
ResponseMTT responseMTT = new Gson().fromJson(stringTranslated, ResponseMTT.class);
StandardCharsets.UTF_8));
return responseMTT.getData().getTranslation();
}
}
response.body.string () возвращает этот формат:
%22Sconto%20del%2020%:%20%3CPAColor0xFF66CC33%3EUtilities%20%E2%86%92%20Capacity%20of%20load%3CPAOldColor%3E.