Ich versuche HttpURLConnection
zu verwenden, um Nachrichten in einer Android-Anwendung zu senden und zu empfangen. Dieser Code funktioniert in einer Java-Anwendung in Ordnung, aber wenn auf Android laufen bekomme ich die folgende Ausnahme:HttpURLConnection getOutputStream Klasse Cast Ausnahme auf Android
java.lang.ClassCastException: com.android.okio.RealBufferedSink$1 cannot be cast to java.io.ByteArrayOutputStream
Der Code, wo dies der Fall ist:
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();
Ich habe auf den Android-Referenzseiten geschaut und diese scheinen zu sagen, was ich erwarten würde, getOutputStream()
gibt eine OutputStream
zurück. Dies sollte dann in der Lage sein, zu einem ByteArrayOutputStream
gegossen werden.
Woher kommt die RealBufferedSink
? Warum bekomme ich keine OutputStream
zurück?
Jede Hilfe würde sehr geschätzt werden!
gerade diese verwenden: Output out = con.getOutputStream(); – itzswan