我在服务器的一些响应中收到一个额外的字节 当使用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中运行。任何帮助将不胜感激......