2016-05-05 25 views
1

如何解决这个probleme我不能让我的InputStream InputStream inputStream = connection.getInputStream();java.io.EOFException的和connection.getInputStream()

功能:

StringBuffer result = new StringBuffer(""); 
    try { 
     URL url = new URL(urlString); 
     HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
     connection.setRequestProperty("User_Agent", ""); 
     connection.setRequestMethod("POST"); 
     connection.setDoInput(true); 
     connection.connect(); 
     InputStream inputStream = connection.getInputStream(); 
     BufferedReader rd = new BufferedReader(new InputStreamReader(inputStream)); 

     String line = ""; 
     while ((line = rd.readLine()) != null) { 
      result.append(line); 
     } 

    } catch (IOException e) { 
     e.printStackTrace(); 
     Log.e("REQUEST Result", "IOException = " + e.getMessage()); 
    } 
    Log.d("REQUEST Result", "result = " + result); 
    return result; 
} 

的logcat:

05-04 18:18:31.190 5027-5093/? W/System.err: java.io.EOFException 
05-04 18:18:31.194 5027-5093/? W/System.err:  at libcore.io.Streams.readAsciiLine(Streams.java:203) 
05-04 18:18:31.194 5027-5093/? W/System.err:  at libcore.net.http.HttpEngine.readHeaders(HttpEngine.java:621) 
05-04 18:18:31.194 5027-5093/? W/System.err:  at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:574) 
05-04 18:18:31.194 5027-5093/? W/System.err:  at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:821) 
05-04 18:18:31.194 5027-5093/? W/System.err:  at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:283) 
05-04 18:18:31.194 5027-5093/? W/System.err:  at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:177) 
05-04 18:18:31.198 5027-5093/? W/System.err:  at com.example.sabrine123.carhapaty.Fragments.AddCarFragment.request(AddCarFragment.java:206) 
05-04 18:18:31.198 5027-5093/? W/System.err:  at com.example.sabrine123.carhapaty.Fragments.AddCarFragment$AddAnnonce.doInBackground(AddCarFragment.java:154) 
05-04 18:18:31.198 5027-5093/? W/System.err:  at com.example.sabrine123.carhapaty.Fragments.AddCarFragment$AddAnnonce.doInBackground(AddCarFragment.java:122) 
05-04 18:18:31.198 5027-5093/? W/System.err:  at android.os.AsyncTask$2.call(AsyncTask.java:287) 
05-04 18:18:31.202 5027-5093/? W/System.err:  at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
05-04 18:18:31.202 5027-5093/? W/System.err:  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
05-04 18:18:31.202 5027-5093/? W/System.err:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
05-04 18:18:31.202 5027-5093/? W/System.err:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
05-04 18:18:31.202 5027-5093/? W/System.err:  at java.lang.Thread.run(Thread.java:856) 
05-04 18:18:31.202 5027-5093/? E/REQUEST Result: IOException = null 
05-04 18:18:31.206 5027-5093/? D/REQUEST Result: result = 
05-04 18:18:31.206 5027-5027/? I/System.out: erreur = End of input at character 0 of 
+0

您是否阅读[this](https://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html#readLine())在读取行之前检查null值。 – t0mm13b

回答

0

在尝试从中获取InputStream之前,应该检查HttpURLConnection是否为空。

当越来越从HttpURLConnection的输入流:

InputStream inputStream = new BufferedInputStream(connection.getInputStream()); 

我不认为这是绝对必要为你做connection.connect()你已经做了url.openConnection()后;

我还注意到您正在发布内容。从Android开发者page on HttpURLConnection

为了获得最佳性能,你应该调用要么setFixedLengthStreamingMode(INT)时,车身长度事先已知或setChunkedStreamingMode(INT)时,它不是。否则HttpURLConnection将被强制在发送之前缓冲内存中的完整请求体,浪费(并可能耗尽)堆并增加延迟。

该页面可能解决您使用该类的任何其他问题。

相关问题