Java DefaultHttpClient导致异步任务延迟
我正在开发一个应用程序,该应用程序使用DefaultHttpClient向服务器发送请求。我正在使用GET方法发送请求。如果端口号错误,则我会收到连接超时异常。我已使用异常处理程序并在异常发生时返回值。但遗憾的是,60秒后调用Post-ExecuteJava DefaultHttpClient导致异步任务延迟,java,android,android-4.4-kitkat,http-get,Java,Android,Android 4.4 Kitkat,Http Get,我正在开发一个应用程序,该应用程序使用DefaultHttpClient向服务器发送请求。我正在使用GET方法发送请求。如果端口号错误,则我会收到连接超时异常。我已使用异常处理程序并在异常发生时返回值。但遗憾的是,60秒后调用Post-Execute protected String doInBackground(String... url) { HttpURLConnection con = null; HttpGet httpGet = null;
protected String doInBackground(String... url)
{
HttpURLConnection con = null;
HttpGet httpGet = null;
DefaultHttpClient httpClient=null;
try
{
httpGet = new HttpGet(url[0]);
HttpParams httpParameters = new BasicHttpParams();
int timeoutConnection = 5000;
int sockettimeout=5000;
HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
HttpConnectionParams.setSoTimeout(httpParameters, sockettimeout);
httpClient = new DefaultHttpClient(httpParameters);
HttpResponse httpResponse = httpClient.execute(httpGet );
int code=httpResponse.getStatusLine().getStatusCode();
}
catch (IOException e)
{
if(e.toString().contains("org.apache.http.conn.ConnectTimeoutException"))
{
Log.i("RAE", "Connection Timeedout");
httpClient.getConnectionManager().closeExpiredConnections();
httpClient.getConnectionManager().shutdown();
httpGet.abort();
Log.i("log", "Before Return");
return "done";
}
@Override
protected void onPostExecute(String result) {
Log.i("log", "Async finished");
}
但是post会在60秒后调用。我可以知道为什么会发生这种情况吗您需要发布更多代码。服务器很可能在返回超时错误之前等待60秒超时。这不是客户端的问题。。。或者发布logcat,以便更清楚地了解您的问题所在。我得到的异常是12-31 13:20:04.346:IAGS6537:org.apache.http.conn.ConnectTimeoutException:Connect to/timeout这是您的logcat中的一行,更多的行会有所帮助。此外,您还应该添加类似e.toString的内容,以提供更多信息。。。不仅仅是e.toString.contains-只需全部显示,对吗???e.toString已将url[0]包含的内容打印出来,您确定它是有效且可访问的url吗?