2012-06-20 2 views
0

Не понимаю: В андроиде я не получаю полную строку, которую я ввел в строку. Я проверил, что строка полностью сохранена, но когда она переходит к stringbody, она просто ломается. В настольной версии того же приложения результаты будут успешными. Но в Android случайная часть в конце строки теряется. Если я попытаюсь сохранить приведенную строку после ее потери, строка сохранится в том же месте. Я не использую никаких акцентов или специальных символов. Пример, что из теста:StringBody не получает полную строку

Первая запись:

Это тест био со случайным сообщением, что я буду Writting на ходу. Если это получится, как будто я ожидаю, что что-то останется . Давайте посмотрим, что произойдет.

Один бросок сохраняет это:

Это тест био со случайным сообщением, что я буду Writting на ходу. Если это урезается, как я ожидал что-то собирается оставить из

Второй сохранить:

Это тест био со случайным сообщением, что я буду Writting на ходу. Если это урезается как я

Код

protected void gravarPerfil() throws UnsupportedEncodingException { 

    MultipartEntity entity = new MultipartEntity(); 
    StringBody sAcerca = null, sLoc = null; 

    DefaultHttpClient client = new DefaultHttpClient(); 
    if (cookie != null) { 
     client.getCookieStore().addCookie(cookie); 
    } 

    HttpPost post = new HttpPost(address + "/dinamicas/editarPerfil"); 

    FileBody imagebin = null; 

    if (imgfile != null) { 
     imagebin = new FileBody(imgfile); 
    } 

    Log.v("msg", acerca.getText().toString()); 

Вот та часть, где моя filebody оленья кожа загрузить всю строку

sAcerca = new StringBody(acerca.getText().toString()); 
    sLoc = new StringBody(local.getText().toString()); 


    try { 

     entity.addPart("acerca", sAcerca); 
     entity.addPart("localizacao", sLoc); 
     if (imgfile != null) { 
      entity.addPart("foto", imagebin); 
     } 

     post.setEntity(entity); 

     HttpResponse response = client.execute(post); 


    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
+0

Раньше у меня была аналогичная проблема. Я полностью отключил приложение от эмулятора/устройства и попробовал еще раз. Тогда все было в порядке. Когда-то в сине-луне, Вещи повреждаются, и приложение стирает его. – CelticParser

+0

удалил, переустановил, создал новый эмулятор, удалил банки из apache и установил новые версии той же версии ... Ничего не работает. : \ – Lucky

+0

Он все равно может быть вашим сервером (между Android и сервером), поэтому [я думаю, это может быть то, что вам нужно] (http://stackoverflow.com/questions/8505811/image-gets-distorted-sometime-while- загрузка) - Аналогично вашей проблеме, но с изображениями при отправке данных с несколькими компонентами. – CelticParser

ответ

0

Не получил каких-либо разумное решение, поэтому я применил прогулку вокруг. Я обнаружил, что удаляемый конец всегда находится между 5 - 13 символами ... Поэтому я добавляю 15 # в конец строки, а затем удаляюсь на стороне сервера. Это некрасиво, но это работает.

0

ли вы имеете в виду последнюю строку журнала дает вам что-то странное ?:

Log.v("msg", response.toString()); 

т.к.

Попробуйте это:

InputStream responseStream = response..getEntity().getContent(); 
String textResponse = StreamConverter.convertStreamToString(responseStream); 
Log.v("msg", "Received:"+ textResponse); 


public class StreamConverter { 

    public static String convertStreamToString(InputStream inputStream) throws IOException { 
     if (inputStream != null) { 
      Writer writer = new StringWriter(); 

      char[] buffer = new char[1024]; 
      try { 
       Reader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"),1024); 
       int n; 
       while ((n = reader.read(buffer)) != -1) { 
        writer.write(buffer, 0, n); 
       } 
      } finally { 
       inputStream.close(); 
      } 
      return writer.toString(); 
     } else { 
      return ""; 
     } 
    } 
} 
+0

Моя проблема заключается в сохранении строки в файле. Строка при переходе к файлу теряет некоторые данные. Сервер, работающий в eclipse, тоже работает хорошо и не имеет ошибки. Сообщение, которое я получаю на сервере, - это сокращенная версия. – Lucky

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