一、前言
本文主要介绍httClient超时时间设置,以及cookie保存策略设置。
二、超时时间设置
httpClient内部有三个超时时间设置:
- connectTimeout -- 连接超时
指的是连接目标url的连接超时时间,即客服端发送请求到与目标url建立起连接的最大时间。如果在该时间范围内还没有建立起连接,则就 抛出connectionTimeOut
异常。如测试的时候,将url改为一个不存在的url:"http://test.com"
,超时时间3000ms过后,系统报出异常:
org.apache.commons.httpclient.ConnectTimeoutException:The host did not accept the connection within timeout of 3000 ms
- connectionRequestTimeout -- 连接池获取可用连接超时(使用连接池之后需要设置)
httpClient中的要用连接时尝试从连接池中获取,若是在等待了一定的时间后还没有获取到可用连接(比如连接池中没有空闲连接了)则会抛出获取连接超时异常。
- socketTimeout -- 读取数据超时
设置超时时间的意义在于,让你知道在哪个地方出问题了。就比如如果请求返回超时,如果你没设置读取数据超时,程序就会一直卡在那个地方,也不会报错。
httpClient4.5版本之后,这几个参数的设置就集成抽象到了Reque