Я пытаюсь прочитать некоторую информацию с помощью REST-сервиса, который использует чанк-кодирование.
String encodedURL = URLEncoder.encode(url, "UTF-8");
WebClient client = org.apache.cxf.jaxrs.client.WebClient.create(encodedURL).accept("text/html");
Response response = client.get();
Ответ содержит статус, метаданные и сущность. Метаданные содержат следующую информацию:
{Date = [Чт, 13 октября 2011 13:27:02 GMT], Vary = [Принять кодирование,
User-Agent], Transfer-Encoding = [chunked], Keep-Alive = [timeout = 15,
max = 100], Content-Type = [text / html; кодировка = кодировка = UTF-8],
Connection = [Keep-Alive], X-Pad = [избежать ошибки браузера],
Сервер = [Apache / 2.2.3 (Linux / SUSE)]}
и объект содержит экземпляр типа sun.net.www.protocol.http.HttpURLConnection $ HttpInputStream.
В прошлом я использовал следующую строку кода, чтобы получить всю строку результата:
String resultString = client.get(String.class);
Но почему-то эта строка выдает исключение:
. Проблема с чтением ответного сообщения, класс: класс
java.lang.String, ContentType: text / html; charset = charset = UTF-8.
org.apache.cxf.jaxrs.client.ClientWebApplicationException: .Problem
с чтением ответного сообщения, класс: class java.lang.String,
ContentType: text / html; charset = charset = UTF-8.
... вызвано:
Вызвано: java.io.UnsupportedEncodingException: charset = UTF-8 at
sun.nio.cs.StreamDecoder.forInputStreamReader (неизвестный источник) в
java.io.InputStreamReader. (Неизвестный источник) в
org.apache.cxf.helpers.IOUtils.toString (IOUtils.java:180) в
org.apache.cxf.helpers.IOUtils.toString (IOUtils.java:166) в
org.apache.cxf.jaxrs.provider.PrimitiveTextProvider.readFrom (PrimitiveTextProvider.java:51)
в
org.apache.cxf.jaxrs.client.AbstractClient.readBody (AbstractClient.java:435)
... еще 49
Есть ли прямое решение для получения всего содержания ответа?
Спасибо!
1029 * Kon *