2013-08-18 40 views
1

我想下载一个php页面的内容(它只是3个字),但我得到java.io.IOException: unexpected end of stream。这是网上下载的代码:IOException - 读取html文件时意外的流结束

// Download file list 
     String zipListUrl = baseUrl + ziplist; 

     HttpClient client = new DefaultHttpClient(); 
     HttpGet request = new HttpGet(zipListUrl); 
     try { 
      HttpResponse response = client.execute(request); 
      // txtResult.setText(HttpHelper.request(response)); 
      InputStream in = response.getEntity().getContent(); 

      BufferedReader reader = new BufferedReader(
        new InputStreamReader(in)); 


      String line = null; 
      String result = null; 
      while ((line = reader.readLine()) != null) { 
       // fileNames.add(line); 
       result += line; 
      } 
      in.close(); 
      // Turn arraylist into simple array 
      // finalFileNames = (String[]) fileNames.toArray(); 

      Log.i(LOG_TAG, /* Arrays.toString(finalFileNames) */result); 

     } catch (Exception ex) { 
      ex.printStackTrace(); 
      Log.d(LOG_TAG, "Exception ex1 = " + ex.toString()); 
     } 

这里是例外:

08-18 11:11:04.312: W/HttpTransport(3101): unexpected end of stream 
08-18 11:11:04.312: W/HttpTransport(3101): java.io.IOException: unexpected end of stream 
08-18 11:11:04.312: W/HttpTransport(3101): at libcore.net.http.FixedLengthOutputStream.close(FixedLengthOutputStream.java:58) 
08-18 11:11:04.312: W/HttpTransport(3101): at com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:83) 
08-18 11:11:04.312: W/HttpTransport(3101): at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:895) 
08-18 11:11:04.312: W/HttpTransport(3101): at net.zedge.android.api.request.BaseApiRequest.run(BaseApiRequest.java:50) 
08-18 11:11:04.312: W/HttpTransport(3101): at net.zedge.android.api.request.BaseApiRequest$1.run(BaseApiRequest.java:84) 
08-18 11:11:04.312: W/HttpTransport(3101): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390) 
08-18 11:11:04.312: W/HttpTransport(3101): at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
08-18 11:11:04.312: W/HttpTransport(3101): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
08-18 11:11:04.312: W/HttpTransport(3101): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
08-18 11:11:04.312: W/HttpTransport(3101): at java.lang.Thread.run(Thread.java:841) 
08-18 11:11:04.342: W/HttpTransport(3101): unexpected end of stream 
08-18 11:11:04.342: W/HttpTransport(3101): java.io.IOException: unexpected end of stream 
08-18 11:11:04.342: W/HttpTransport(3101): at libcore.net.http.FixedLengthOutputStream.close(FixedLengthOutputStream.java:58) 
08-18 11:11:04.342: W/HttpTransport(3101): at com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:83) 
08-18 11:11:04.342: W/HttpTransport(3101): at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:895) 
08-18 11:11:04.342: W/HttpTransport(3101): at net.zedge.android.api.request.BaseApiRequest.run(BaseApiRequest.java:50) 
08-18 11:11:04.342: W/HttpTransport(3101): at net.zedge.android.api.request.BaseApiRequest$1.run(BaseApiRequest.java:84) 
08-18 11:11:04.342: W/HttpTransport(3101): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390) 
08-18 11:11:04.342: W/HttpTransport(3101): at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
08-18 11:11:04.342: W/HttpTransport(3101): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
08-18 11:11:04.342: W/HttpTransport(3101): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
08-18 11:11:04.342: W/HttpTransport(3101): at java.lang.Thread.run(Thread.java:841) 

我试图调试,并result最后一个值是这样的: null<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL /ziplist.php was not found on this server.</p><p>Additionally, a 404 Not Founderror was encountered while trying to use an ErrorDocument to handle the request.</p></body></html>

任何想法都欢迎!

+1

您的PHP页面是否可能设置Content-Lenght(错误地)? –

+0

编辑完成后;似乎/ziplist.php只是普通的不存在于您的服务器上。检查您的网址。 –

+0

你对这两件事都是对的:) - 我错过了url的文件夹名称,也没有Content-Lenght标题。写下你的答案,我会接受它。感谢您的快速帮助! – keybee

回答

1

这似乎是Content-Length的设置不正确(the source表明FixedLengthOutputStream.close抛出IOException异常的大小不匹配)

而且,在你的编辑你显示出你的页面返回一个“404,这表明您没有使用ziplist.php的正确URL。请仔细检查您使用的网址:)