Я пытаюсь использовать 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
?
Любая помощь была бы принята с благодарностью!
просто использовать это: OutputStream из = con.getOutputStream(); – itzswan