這已在幾個問題中提出,但我還沒有看到真正的答案。我有Android的代碼執行NetHttpRequest到圖像發佈到服務器,但它往往不能很快就像這樣:上傳文件時在NetHttpRequest.execute()中拋出的「流的意外結束」
unexpected end of stream java.io.IOException: unexpected end of stream
at libcore.net.http.FixedLengthOutputStream.close(FixedLengthOutputStream.java:58)
at com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:84)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1009)
at com.test.MyActivity$ImageUploadTask.doInBackground(MyActivity.java:870)
at com.test.MyActivity$ImageUploadTask.doInBackground(MyActivity.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
我不明白這一點。爲什麼不能這樣呢?鑑於回溯,它使我相信它必須與HTTP庫過早關閉連接有關,但我無法確定原因。大多數相關問題都有完全相同的問題(例如Uploading jpeg to Google Drive from Android app "unexpected end of stream"),除非每個問題都沒有答案,或者提問者發現一些似乎爲他們解決問題的奇怪解決方法(儘管他們很可能只是幸運了)。
我的上傳代碼不是什麼特別的,只是一個創建HttpRequest並執行它的AsyncTask。它大部分時間都完美無瑕,但其他時候卻不能解釋。是什麼賦予了?
仍然得到錯誤。 – Napolean