Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java客户端无法从wcf rest服务读取大响应_Java_Android_Httpwebrequest_Wcf - Fatal编程技术网

Java客户端无法从wcf rest服务读取大响应

Java客户端无法从wcf rest服务读取大响应,java,android,httpwebrequest,wcf,Java,Android,Httpwebrequest,Wcf,我正在尝试使用android 2.1上的java客户端使用rest WCF服务。 它对小的响应非常有效。当我试图通过获得1000多个字符的响应读卡器来进一步推进时,read(buffer)无法读取所有字符。这导致脚本的最后一行返回:字符8193“{plate 我的android设备在仿真器android启动之前就开始出现此错误(字符1194而不是8193)。有人知道如何获取完整消息吗 客户端代码: HttpGet request = new HttpGet(SERVICE_URI + "/Get

我正在尝试使用android 2.1上的java客户端使用rest WCF服务。 它对小的响应非常有效。当我试图通过获得1000多个字符的响应读卡器来进一步推进时,read(buffer)无法读取所有字符。这导致脚本的最后一行返回:字符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>

而不是

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);
而不是

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);