Отказ от ответственности: я на самом деле не знаю HttpClient, только читая API.
Я бы использовал метод execute, возвращающий HttpResponse, тогда .getEntity().getContent()
. Это чистый байтовый поток, поэтому, если вы хотите игнорировать кодировку, сообщаемую сервером, вы можете просто обернуть вокруг него свой собственный InputStreamReader.
Хорошо, похоже, у меня была неправильная версия (очевидно, там слишком много HttpClient
классов).
Но так же, как и раньше, просто находится в других классах: HttpMethod
имеет метод getResponseBodyAsStream()
, вокруг которого вы можете теперь обернуть свой собственный InputStreamReader. (Или получите весь массив за раз, если он не слишком большой, и преобразуйте его в String, как вы написали.)
Я думаю, что пытаться изменить ответ и позволить HttpClient анализировать его здесь не совсем правильно.
Я предлагаю отправить администратору сервера / веб-мастеру сообщение о неправильной кодировке.