我試圖使用HttpURLConnection
在Android應用程序中發送和接收消息。此代碼工作正常在Java應用程序,但在Android上運行時,我得到以下異常:Android上的HttpURLConnection getOutputStream類拋出異常
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();
我已經看過了Android的參考頁和這些似乎是說我期望的,getOutputStream()
返回OutputStream
。這應該可以轉換爲ByteArrayOutputStream
。
RealBufferedSink
從哪裏來?爲什麼我沒有收到OutputStream
?
任何幫助將不勝感激!
只是用這樣的: 的OutputStream OUT = con.getOutputStream(); – itzswan