HttpParams params = new BasicHttpParams();
ConnManagerParams.setMaxConnectionsPerRoute(params, new ConnPerRouteBean(100));
ConnManagerParams.setMaxTotalConnections(params, 100);
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setUseExpectContinue(params, false);
HttpProtocolParams.setContentCharset(params, HTTP.DEFAULT_CONTENT_CHARSET);
HttpConnectionParams.setConnectionTimeout(params, CONNECTION_TIMEOUT);
HttpConnectionParams.setSoTimeout(params, REQUEST_TIMEOUT);
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), PORT));
ThreadSafeClientConnManager cm = new ThreadSafeClientConnManager(params, registry);
client = new DefaultHttpClient(cm, params);
HttpClientParams.setCookiePolicy(client.getParams(), CookiePolicy.BROWSER_COMPATIBILITY);
当我的应用程序等待几秒钟时,由于ClientProtocolException,下一篇文章将失败。 通过wireshark,我发现android也使用以前的tcp套接字来执行帖子,但是该套接字以来自服务器的FIN结束。接下来的几个帖子将成功,因为新的套接字建立。 有没有人知道如何解决问题??
答案 0 :(得分:1)
我有类似的问题。尝试添加以下行:
System.setProperty("http.keepAlive", "false");
进行连接之前。可能会解决你的问题。