Java клиент имеет проблемы с чтением больших ответов от wcf rest service - PullRequest
1 голос
/ 19 декабря 2010

Я пытаюсь использовать службу WCF отдыха с помощью Java-клиента на Android 2.1. Он отлично работает на небольших ответах. Когда я попытался продвинуться немного дальше, получив ответ более 1000 символов, читатель не прочитал все символы. Это привело к возврату последней строки сценария: неопределенная строка JsonException с символом 8193 "{plate, ...

Мое устройство Android начинает получать эту ошибку до того, как эмулятор android помечает ее (персонаж 1194 вместо 8193). Кто-нибудь знает, как получить полное сообщение?

Код клиента:

HttpGet request = new HttpGet(SERVICE_URI + "/GetPlates");
request.setHeader("Accept", "application/json");
request.setHeader("Content-type", "application/json");
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpResponse response = httpClient.execute(request);
HttpEntity responseEntity = response.getEntity();
char[] buffer = new char[(int)responseEntity.getContentLength()];
InputStream stream = responseEntity.getContent();
InputStreamReader reader = new InputStreamReader(stream);
reader.read(buffer);
stream.close();         
JSONArray plates = new JSONArray(new String(buffer));

Конфигурация сервера:

<webHttpBinding>
    <binding name="big_webHttpBinding" maxReceivedMessageSize="4097152" maxBufferSize="4097152" maxBufferPoolSize="4097152">
      <readerQuotas maxStringContentLength="4097152" maxArrayLength="4097152" maxBytesPerRead="4097152" maxNameTableCharCount="4097152" maxDepth="4097152"/>
    </binding>
  </webHttpBinding>

1 Ответ

5 голосов
/ 19 декабря 2010

Вместо

char[] buffer = new char[(int)responseEntity.getContentLength()];
InputStream stream = responseEntity.getContent();
InputStreamReader reader = new InputStreamReader(stream);
reader.read(buffer);
stream.close(); 

сделайте это:

String jsonText = EntityUtils.toString(responseEntity, HTTP.UTF_8);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...