字符串过长会被截断

我正在尝试从服务器获取JSON响应,并且当字符串长度" title="字符串长度">字符串长度达到约5525个字符时,响应字符串似乎总是被截断。

HttpClient httpClient = new DefaultHttpClient();

HttpPost post = new HttpPost(URL);

ResponseHandler<String> responseHandler= new BasicResponseHandler();

String testResponse = httpClient.execute(post, responseHandler);

我还通过使用HttpEntity并读取响应流进行了尝试。但这也会在大约该长度处截断字符串。

            HttpClient httpClient = new DefaultHttpClient();

HttpPost post = new HttpPost(URL);

// HttpGet get = new HttpGet(URL);

HttpResponse response = null;

HttpEntity entity = null;

InputStream inputStream = null;

BufferedReader reader = null;

String result = "";

try {

response = (HttpResponse)httpClient.execute(post);

entity = response.getEntity();

if(entity != null){

inputStream = entity.getContent();

}

reader = new BufferedReader(new InputStreamReader(inputStream), 8000);

StringBuffer builder = new StringBuffer("");

String line = reader.readLine();

while(line != null){

Log.v(tag, "int max::::::::: "+Integer.MAX_VALUE);

Log.v(tag, "LINE::::::::: "+line+reader.toString());

Log.v(tag, "reader::::::::: "+reader.toString());

builder.append(line+"\n");

line = reader.readLine();

}

inputStream.close();

result = builder.toString();

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally{

if(inputStream != null){

try{

inputStream.close();

}catch(IOException e){

e.printStackTrace();

}

}

}

请让我知道如何处理此问题。创建此文章时,我将其作为参考。

http://senior.ceng.metu.edu.tr/2009/praeda/2009/01/11/a-simple-restful-

client-at-

android/

谢谢。

回答:

首先感谢大家的答复。

我只是发现问题不在于我的代码,而在于logcat显示的行数。问题是我的json回复格式有问题,我的解析代码吐了一个错误。所以我开始尝试通过在logcat中打印响应json字符串来调试它。这总是被截断,而我一直猜到现在服务器本身的响应也被截断了。

因此,今天我开始使用响应字符串构建器,必须编写有趣的代码片段来对字符进行计数并在期望的位置检测字符,然后发现响应已完全返回。我还对其他较大的字符串测试了我的代码,发现logcat限制了它显示的字符串的长度,或者至少看起来如此。这就是为什么我的回复显示为截断的字符串的原因,我认为这是我的代码存在的问题。

因此,由于代码较早,因此工作正常,唯一的问题是logcat无法显示完整的字符串。但这并没有打扰我[至少现在]。

再次感谢大家的帮助。

以上是 字符串过长会被截断 的全部内容, 来源链接: utcz.com/qa/418716.html

回到顶部