2016-09-30 3 views
0

Я пытаюсь использовать HttpURLConnection для отправки и получения сообщений в приложении для Android. Этот код прекрасно работает в приложении Java, но при запуске на Android я получаю следующее исключение:HttpURLConnection getOutputStream класс cast исключение на Android

java.lang.ClassCastException: com.android.okio.RealBufferedSink$1 cannot be cast to java.io.ByteArrayOutputStream 

код, где это происходит:

 URL url = new URL(destURI.toString()); 

     HttpURLConnection con = (HttpURLConnection) url.openConnection(); 

     // Set request properties and headers 
     con.setDoOutput(true); 
     con.setDoInput(true); 
     con.setRequestProperty(HEADER_CONTENT_TYPE, CONTENT_TYPE_LS); 
     con.setRequestProperty(HEADER_CONTENT_LENGTH, new Integer(wrapperBytes.length).toString()); 
     con.setRequestMethod(METHOD_POST); 

     // Set connect and read timeouts 
     con.setConnectTimeout(timeoutInMillis); 
     con.setReadTimeout(timeoutInMillis); 

     // Write request content 
     ByteArrayOutputStream out = (ByteArrayOutputStream) con.getOutputStream(); 
     out.write(wrapperBytes); 
     out.flush(); 

Я посмотрел на андроид справочных страниц и они, кажется, говорят, что я ожидаю, getOutputStream() возвращает OutputStream. Затем он должен быть перенесен на ByteArrayOutputStream.

Где находится RealBufferedSink? Почему я не получаю обратно OutputStream?

Любая помощь была бы принята с благодарностью!

+0

просто использовать это: OutputStream из = con.getOutputStream(); – itzswan

ответ

0

Кастинг

ByteArrayOutputStream out = (ByteArrayOutputStream) con.getOutputStream(); 

не рекомендуется, вы можете попробовать:

OutputStream out = new BufferedOutputStream(con.getOutputStream()); 
+0

Я не думаю, что это правильный конструктор - есть 'новый ByteArrayOuputStream()' и 'новый ByteArrayOutputStream (int size)', но не тот, который принимает параметр OutputStream – JLo237

+0

@ JLo237 Я обновил ответ, на самом деле, это должен быть BufferedOutputStream – super1ha1

+0

Вот и все, спасибо! – JLo237

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