android应用中HTTP通信性能

1):Expect: 100-Continue:http.protocol.expect-continue

Expect 100 Continue其实是http协议1.1中的一个header属性, 就是说如果设置了Expect 100 Continue 那么就意味着客户端在向服务器发送数据的时候,需要先向服务器发起一个请求看服务器是否愿意接受客户端将要发送的数据(我们这里可以认为是http body,往往是较大的数据块)。

因为Expect 100 comtinue会导致客户端在向服务器发送数据是进行两次请求,这样对通信的性能方面将会受到一定的影响,但这种情况在做验证或者给予curl的服务器是很常见的,这也是该属性的主要应用场合。

介于以上原因,我们不能滥用该属性,并且在不支持http 1.1的协议的服务器也会产生一定的问题。

 

android:

httpclient = new DefaultHttpClient();
httpclient.getParams().setParameter(
HttpProtocolParams.USE_EXPECT_CONTINUE, false);

 

2)HTTP connection control:Close or Keep-Alive

 看代码:

	httpclient.setKeepAliveStrategy(new DefaultConnectionKeepAliveStrategy() {

	@Override
	public long getKeepAliveDuration(
	HttpResponse response, HttpContext context) {
	long keepAlive = super.getKeepAliveDuration(response, context);
	if (keepAlive == -1) {
	// 如果keep-alive值没有由服务器明确设置,那么保持连接持续5秒。
	keepAlive = 5000;
	}
	return keepAlive;
	}
	});

 

很明了:如果keep-alive值没有由服务器明确设置,那么保持连接持续5秒。

客户端可以这样设置,但是相对来说,服务端设置效率会更高。

在请求的时候设置参数,服务端进行处理:

httppost为例:

HttpPost httpost = new HttpPost(url);
httpost.setHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_CLOSE);



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值