我想從我們的服務器得到一個JSON響應,並且當字符串長度達到大約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/
謝謝。
你確定服務器當前返回整個事情請投票嗎?您可以使用http://code.google.com/p/rest-client/之類的內容點擊它並查看完整回覆。 – 2010-08-26 22:52:24
是的,我確信服務器正在返回整個事情,我從瀏覽器中測試它,它確實返回整個JSON。 – achie 2010-08-26 23:08:03
儘管其相當晚,但可能會幫助其他人 我使用此代碼來顯示在同一網站上找到的完整代碼 int MaxLogSize = 1000; (int i = 0; i <= veryLongString.length()/ maxLogSize; i ++)int start = i * maxLogSize; < int end =(i + 1)* maxLogSize; end = end> veryLongString.length()? veryLongString.length():end; Log.v(TAG,veryLongString.substring(start,end)); }' – 2016-06-04 03:57:04