Android的DefaultHttpClient中,超时设置需要调用HttpConnectionParams.setConnectionTimeout方法,如(以下代码的31~35行代码):

ref: Timeout in DefaultHttpClient Class Android

/**发送post请求的方法
* @param params 请求参数的键-值对.
* @param url
* @param encoding
* @param setTimeout 标识是否设置连接超时.
* @param connectionTimeout 如果设置连接超时,连接超时时间.
* @return
* @throws MalformedURLException
* @throws IOException
* @throws JSONException
* @throws ParseException
*/
private boolean postSend(final Map<String, String> params,
final String url, final String encoding, boolean setTimeout, final int connectionTimeout)
throws MalformedURLException, IOException, JSONException,
ParseException {
// 封装请求参数的键值对.
List<BasicNameValuePair> pairs = new ArrayList<BasicNameValuePair>();
for (Entry<String, String> param : params.entrySet()) {
pairs.add(new BasicNameValuePair(param.getKey(), param
.getValue()));
}
// 封装请求参数的实体.
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(pairs,
encoding);
// 使用post请求.
HttpPost post = new HttpPost(url);
post.setEntity(entity);
// 使用DefaultHttpClient指定请求,以获取响应信息.
DefaultHttpClient client = new DefaultHttpClient();
//设置连接超时.
if(setTimeout) {
final HttpParams httpParameters = client.getParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, connectionTimeout);
}
HttpResponse response = client.execute(post);
BufferedReader reader = new BufferedReader(new InputStreamReader(
response.getEntity().getContent(), encoding));
// 使用线程安全的StringBuffer.
StringBuffer buffer = new StringBuffer();
String ln = null;
while ((ln = reader.readLine()) != null)
buffer.append(ln).append(System.getProperty("line.separator")); //根据操作系统平台换行.
// 传递json到Service处理.
final String rawJsonStr = buffer.toString();
//test only:
// Log.i("sysout", rawJsonStr);
resultAQIDays = convertJsonToAQIDayList(rawJsonStr);
return response.getStatusLine().getStatusCode() == 200; // 等于200表示发送成功.
}

android - DefaultHttpClient设置超时.的更多相关文章

  1. android httpclient 设置超时

    3.X是这样的 HttpClient httpClient=new DefaultHttpClient();4.3是这样的CloseableHttpClient httpClient = HttpCl ...

  2. android 中设置HttpURLConnection 超时并判断是否超时

    设置超时: URL url1 = new URL(url); HttpURLConnection conn = (HttpURLConnection) url1.openConnection(); c ...

  3. Android HttpGet和HttpPost设置超时

    HttpPost: private Runnable runnable = new Runnable() { @Override public void run() { String url = Ba ...

  4. Android 网络请求超时处理方案

    以用户登录为例介绍用户访问网络时的请求超时处理的两种方法: 1)使用android提供的工具类AsyncTask类,此类提供了一个AsyncTask.execute().get(timeout, un ...

  5. HttpClient库设置超时

    HttpClient库API跟Lucene一样,每个版本的API都变化很大,这有点让人头疼.就好比创建一个HttpClient对象吧,每一个版本的都不一样. 3.X是正常的Java语法 HttpCli ...

  6. httpClient创建对象、设置超时

    从老版本和新版本进行比较说明: 1.创建HttpClient对象 3.X: HttpClient httpClient = new DefaultHttpClient(); 4.3: Closeabl ...

  7. gsoap设置超时

    1.修改gsoap自动生成的代码才能进行超时设置(我这边访问web service的代码都是gsoap工具自动生成.根据wsdl接口) 2.找到生成的soapwwwsdlBindingProxy.cp ...

  8. Android editview 设置只能输入数字、字母和汉字

    Android editview 设置只能输入数字.字母和汉字 当处理密码.昵称等特殊情况的时候,往往需要对输入内容加以限制.对于单纯的一种输入法限制可以对键盘和editview熟悉进行控制,而对于多 ...

  9. Android中设置TextView的颜色setTextColor

    tv.setTextColor(Color.parseColor("#FFFFFF")); tv.setTextColor(Color.WHITE); tv.setTextColo ...

随机推荐

  1. Delphi 预编译指令 的用法

    A.3 使用条件编译指令条件编译指令是非常重要的编译指令,他控制着在不同条件下(例如,不同的操作系统)产生不同的代码.条件编译指令是包含在注释括号之内的,如下表所示.                 ...

  2. HDOJ --- 2084数塔

    数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...

  3. Can't initialize OCI. Error -1

    今天使用Toad连接Oracle时出现"Can't initialize OCI. Error -1" 解决方法 因为是刚做的windows 7系统,所以没有设置更改通知的时间 把 ...

  4. bzoj 1876 [SDOI2009]SuperGCD(高精度+更相减损)

    1876: [SDOI2009]SuperGCD Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 2384  Solved: 806[Submit][Sta ...

  5. javascript检测属性

    javascript 对象可以看做属性的集合.我们可以通过三种方式来判断某个属性是否存在于某个对象中. 1.in操作符 var o={x:1} "x" in o //True :x ...

  6. LR(1)表驱动语法分析设计图表

  7. 日常使用 Git 的 19 个建议

    如果你对git一无所知,那么我建议先去读一下Git 常用命令速查.本篇文章主要适合有一定 git 使用基础的人群. 目录: 日志输出参数 查看文件的详细变更 查看文件中指定位置的变更 查看尚未合并(m ...

  8. hdoj 2502 月之数

    月之数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  9. bash shell——与if条件相关的参数意义

    最近编写脚本,常看到有 if [ -x $variable ] 类的条件语句,不知道相应参数的意义到底是什么, 特摘录如下:from   http://blog.csdn.net/aaaaatiger ...

  10. RocketMq消息队列使用

    最近在看消息队列框架 ,alibaba的RocketMQ单机支持1万以上的持久化队列,支持诸多特性, 目前RocketMQ在阿里集团被广泛应用在订单,交易,充值,流计算,消息推送,日志流式处理,bin ...