Android java.io.EOFException和connection.getInputStream()

Android java.io.EOFException和connection.getInputStream(),android,android-asynctask,Android,Android Asynctask,我怎么解决这个问题?我无法获取输入流 InputStream-InputStream=connection.getInputStream() 功能: StringBuffer result = new StringBuffer(""); try { URL url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection();

我怎么解决这个问题?我无法获取输入流
InputStream-InputStream=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;
}
日志:

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 

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

从HttpURLConnection获取输入流时:

InputStream inputStream = new BufferedInputStream(connection.getInputStream());
我认为在您已经完成
url.openConnection()
之后,您完全没有必要执行
connection.connect()

我还注意到您正在发布内容。来自Android开发者:

为获得最佳性能,当正文长度事先已知时,应调用setFixedLengthStreamingMode(int),否则应调用setChunkedStreamingMode(int)。否则,HttpURLConnection将被迫在传输之前在内存中缓冲完整的请求体,从而浪费(可能会耗尽)堆并增加延迟


该页面可能会解决您在使用该类时遇到的任何其他问题。

在尝试从HttpURLConnection获取InputStream之前,您应该检查HttpURLConnection是否为null

从HttpURLConnection获取输入流时:

InputStream inputStream = new BufferedInputStream(connection.getInputStream());
我认为在您已经完成
url.openConnection()
之后,您完全没有必要执行
connection.connect()

我还注意到您正在发布内容。来自Android开发者:

为获得最佳性能,当正文长度事先已知时,应调用setFixedLengthStreamingMode(int),否则应调用setChunkedStreamingMode(int)。否则,HttpURLConnection将被迫在传输之前在内存中缓冲完整的请求体,从而浪费(可能会耗尽)堆并增加延迟

该页面可能会解决您在使用该类时遇到的任何其他问题。

在阅读一行之前,您是否阅读过检查null。在阅读一行之前,您是否阅读过检查null。