android设置http参数HttpConnectionParams和HttpClient,HttpGet

try {
// 创建 HttpParams 以用来设置 HTTP 参数(这一部分不是必需的)
HttpParams params = new BasicHttpParams();
// 设置连接超时和 Socket 超时,以及 Socket 缓存大小
HttpConnectionParams.setConnectionTimeout(params, 20 * 1000);
HttpConnectionParams.setSoTimeout(params, 20 * 1000);
HttpConnectionParams.setSocketBufferSize(params, 8192);
// 设置重定向,缺省为 true
HttpClientParams.setRedirecting(params, true);
// 设置 user agent
HttpProtocolParams.setUserAgent(params, userAgent);
// 创建一个 HttpClient 实例
// 注意 HttpClient httpClient = new HttpClient(); 是Commons HttpClient
// 中的用法,在 Android 1.5 中我们需要使用 Apache 的缺省实现 DefaultHttpClient
HttpClient httpClient = new DefaultHttpClient(params);
// 创建 HttpGet 方法,该方法会自动处理 URL 地址的重定向
HttpGet httpGet = new HttpGet (“http://www.test_test.com/”);
HttpResponse response = client.execute(httpGet);
if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
// 错误处理,例如可以在该请求正常结束前将其中断
httpGet.abort();
}
// 读取更多信息
Header[] headers = response.getHeaders();
HttpEntity entity = response.getEntity();
Header header = response.getFirstHeader(“Content-Type”);
InputStream content = entity.getContent(); 
BufferedInputStream bis = new BufferedInputStream(content); 
StringBuilder builder = new StringBuilder(); 
int b; 
while((b=bis.read()) != -1){ 
builder.append((char)b); 

String resultStr = builder.toString(); 
Log.v("result", resultStr); 
} catch (Exception ee) {
} finally {
// 释放连接
client.getConnectionManager().shutdown();
}
在使用Java HttpClient发送Http请求时,我们需要设置超时时间,以防止请求处理过程过长而导致请求无法完成。接下来,我们将介绍如何设置Java HttpClient超时时间。 在Java HttpClient中,超时时间的设置包括连接超时时间和读取超时时间。 连接超时时间指的是连接到远程服务器的时间,如果连接到远程服务器的时间超过设定的时间上限,则HttpClient会抛出ConnectTimeoutException异常。 读取超时时间指的是从远程服务器读取数据的时间,如果读取数据的时间超过设定的时间上限,则HttpClient会抛出SocketTimeoutException异常。 HttpClient提供了两种方法来设置超时时间: 1. 通过HttpParams对象: ``` HttpParams httpParams = new BasicHttpParams(); //设置连接超时时间 HttpConnectionParams.setConnectionTimeout(httpParams, connectionTimeout); //设置读取数据超时时间 HttpConnectionParams.setSoTimeout(httpParams, soTimeout); //创建HttpClient对象 HttpClient httpClient = new DefaultHttpClient(httpParams); ``` 2. 通过builder模式: ``` //设置连接超时时间 RequestConfig config = RequestConfig.custom() .setConnectTimeout(connectionTimeout) .setSocketTimeout(soTimeout) .build(); //创建HttpClient对象 HttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(config).build(); ``` 总的来说,无论使用哪种方式,我们都需要设置连接超时时间和读取超时时间。适当的超时时间可以提高应用程序的性能和稳定性,减少不必要的等待和阻塞。同时,我们也需要根据实际需求进行调整,以确保在连接和读取过程中不会出现超时异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值