2014-10-10 5 views
2

Я работаю с HttpUrlConnection в своем приложении и в своем общем тесте Java, и я применил метод, и этот метод (общий для обоих из них, так, идентичный !!!) ведет себя в случае Android по-другому.Есть ли у Android лимит Char Char для String?

Оба они могут получить одинаковый ответ от сервера, но в Java-тесте. Я могу показать этот ответ, в то время как в приложении Android размещено 3200 символов.

Это мой код

private String sendPost() throws Exception{ 


    String url = "http://www.something.com/my_page.jsp?"; 
    URL obj = new URL(url); 
    HttpURLConnection con = (HttpURLConnection) obj.openConnection(); 

    //add request header 
    con.setRequestMethod("POST"); 


    String urlParameters ="param1=val1&param2=val2"; 

    // Send post request 
    con.setDoOutput(true); 
    DataOutputStream wr = new DataOutputStream(con.getOutputStream()); 
    wr.writeBytes(urlParameters); 
    wr.flush(); 
    wr.close(); 

    BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); 
    String inputLine; 
    response = new StringBuffer(); 

    while ((inputLine = in.readLine()) != null) { 
     response.append(inputLine); 
    } 
    in.close(); 

    // return result 
    Log.i("TAG", "sendPost:: Response length : " + response.length()); // <- This line returns the same length!!!  

    return response.toString(); 
} 

Все, что я могу получить от этого объекта con из класса HttpUrlConnection как ContentLength, ContentType и т.д. одинакова в обоих случаях, поэтому я подозреваю, что должно быть стажером Setting/Параметр String/StringBuffer в Android, который отличает этот случай, но я не знаю, что. readLine читает то же самое или, по крайней мере, то же число chars, потому что длина ответа одинакова в обоих случаях.

Если бы вы могли сказать мне, что не так, я был бы очень благодарен.

С наилучшими пожеланиями

+3

Записываете ли вы строку, возвращаемую из этих методов? Я предполагаю, что logcat может ограничить длину зарегистрированного сообщения. – Natix

+0

Хорошо, хорошая идея, я проверю ее. Thx –

+0

Thx @Natix, это было! Пожалуйста, напишите свой комментарий как «Ответ», и я выбираю его как ответ. –

ответ

4

Я не могу понять ваше описание симптомов; то почему вы думаете, что что-то усекается.

Тем не менее, могу вам заверить, что это НЕ из-за ограничения на длину String или StringBuffer.

Эти два класса имеют предел, но это 2**31 (т. Е.> 2 миллиарда) символов. Обычно вы получите OutOfMemoryError, прежде чем ваш буфер станет таким большим.

+1

Я так думаю, потому что, когда я показываю свой журнал, и он показывает только 3200, и совет @Natix решил, это было ограничение «Logcat». –

Смежные вопросы