HttpURLConnection意外状态行

时间:2015-01-31 20:32:06

标签: java android httpurlconnection

我在服务器的一些响应中收到一个额外的字节 当使用HttpURLConnection时,共振应该是HTTP / 1.1 200 OK, 但我一直在响应面前收到一个零,这导致异常,我不知道为什么,可能是我发送请求非常快, 问题是它是随机发生的。对于我的研究,持久连接有时发送和数据块之间的额外字节,问题是为什么HttpURLConnection不知道如何处理这个?这是错误,开始时的奇怪字符是零字节:

java.net.ProtocolException:意外的状态行: HTTP/ 1.1 200 OK 在com.android.okhttp.internal.http.RawHeaders.setStatusLine(RawHeaders.java:108) at com.android.okhttp.internal.http.RawHeaders.fromBytes(RawHeaders.java:308) 在com.android.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:135)

有谁知道如何解决这个问题?尝试获取输入流时抛出异常

这是我正在使用的代码:

            String postURL = this._http_connection;
            con = (HttpURLConnection) ( new URL(postURL)).openConnection();             
            con.setRequestMethod("POST");
            con.setDoInput(true);
            con.setDoOutput(true);              
            con.setConnectTimeout(_timeout);
            con.setReadTimeout(_timeout);
            con.setUseCaches(false);                
            con.setDefaultUseCaches(false);
            HttpResponseCache.setDefault(null);

            Log.v("doInBackground", "HttDataTask: 1");              

            if(this._httpParams != null && this._httpParams.size() > 0)
            {
                byte [] buffer = ("=" + _httpParams.get(0).toString()).getBytes();
                con.getOutputStream().write(buffer, 0, buffer.length);
                con.getOutputStream().close();
            }
            Log.v("doInBackground", "HttDataTask: 2");

            baos = new ByteArrayOutputStream();
            stream = con.getInputStream();
            byte buffer [] = new byte[10240];
            int len = 0;

以下是一篇文章,但我不知道如何解决问题,如何告诉HttpURLConnection忽略此字节或处理它?<​​/ p>

https://www.subbu.org/blog/2004/11/persistent-connections-pipelining-and-chunking

服务器使用REST apis在Internet Information Server中运行。任何帮助将不胜感激......

0 个答案:

没有答案