代碼在IDE上運行良好,但每當我將其實現到應用程序(Android)時,它都會給我一個EOFException。如何解決EOFException?
這是代碼:
try {
URL url = new URL(link);
URLConnection con = url.openConnection();
BufferedReader bf = new BufferedReader(new InputStreamReader(con.getInputStream()));
StringBuilder sb = new StringBuilder();
String inputLine;
while ((inputLine = bf.readLine()) != null) {
sb.append(inputLine);
}
bf.close();
} catch (Exception e) {
e.printStackTrace();
}
這是堆棧跟蹤:
java.io.EOFException
W/System.err: at com.android.okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:95)
W/System.err: at com.android.okhttp.internal.http.HttpConnection.readResponse(HttpConnection.java:179)
W/System.err: at com.android.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:101)
W/System.err: at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:628)
W/System.err: at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:409)
W/System.err: at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:353)
W/System.err: at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:220)
W/System.err: at com.example.unknown.api_testing.MainActivity$1.doInBackground(MainActivity.java:45)
W/System.err: at com.example.unknown.api_testing.MainActivity$1.doInBackground(MainActivity.java:35)
W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:292)
W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
W/System.err: at java.lang.Thread.run(Thread.java:818)
您能和我們分享一下實際的鏈接嗎? –
服務器沒有發送響應:相反,它只是關閉連接。除非您使用的是錯誤的URL,否則這不是您可以在此處「修復」的內容。在瀏覽器中試用。 – EJP
你能分享完整的代碼嗎? –