Android http超时选项的测试
来源:互联网 发布:测辐射的软件 编辑:程序博客网 时间:2024/04/29 04:54
- Android http超时选项的测试
- Android通过HttpConnectionParams类为http参数设置提供了两个超时的设置选项,分别是setSoTimeout和setConnectionTimeout。初看一眼Android官方给的文档对这个两个方法的具体含义有一种不理解不够清楚的感觉,所以决定通过测试的方式来看看到底在什么情况下这两个参数会起作用。经过测试可以发现,setConnectionTimeout设置了建立连接的超时,这是针对TCP的三次握手而言的,如果在指定时间内无法和http服务器建立TCP连接,就会抛出ConnectionTimeoutException。setSoTimeout则设置的是TCP保活时间,在建立了连接之后的指定时间内没有收到服务器发来的相应的数据包,则抛出SocketTimeoutException.一、测试代码复制代码private String urlString;private int timeout1,timeout2;MyAsyncTask(String url,int timeout1,int timeout2){urlString=url;this.timeout1=timeout1;this.timeout2=timeout2;}@Overrideprotected String doInBackground(String... params) {httpget(urlString,timeout1,timeout2);return "test";}protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);new MyAsyncTask("http://www.xiaonei.com:1234",3000,5000).execute("start");new MyAsyncTask("http://www.baidu.com",3000,5000).execute("start");}private void httpget(String Url,int timeout1,int timeout2) {Log.v("httpget", "httpget start timeout1 is "+timeout1+"timeout2 is "+timeout2);int timeoutConnection = timeout1; // until connection is establishedint timeoutSocket = timeout2; // timeout for waiting for dataHttpParams httpParameters = new BasicHttpParams();HttpConnectionParams.setConnectionTimeout(httpParameters,timeoutConnection);HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);HttpGet postRequest = new HttpGet(Url);HttpResponse httpResp = null;try {httpResp = httpClient.execute(postRequest);} catch (ClientProtocolException e) {Log.v("Main", "clinet protocol exception");return;}catch (SocketTimeoutException e) {// TODO: handle exceptionLog.v("Main", "socket timeout"+timeout2);return;}catch (ConnectTimeoutException e) {// TODO: handle exceptionLog.v("Main", "connection timeout"+timeout1);return;}catch (IOException e) {Log.v("Main", "io exception");return;}}
0 0
- Android http超时选项的测试
- Android HTTP连接超时
- socket 请求接收完整的一个http响应(设置recv 接收超时选项SO_RCVTIMEO)
- socket 请求接收完整的一个http响应(设置recv 接收超时选项SO_RCVTIMEO)
- socket 请求接收完整的一个http响应(设置recv 接收超时选项SO_RCVTIMEO)
- socket 请求接收完整的一个http响应(设置recv 接收超时选项SO_RCVTIMEO)
- Android·HTTP超时机制
- Android·HTTP超时机制
- Android http请求数据 设置超时
- Android Http请求网络模拟超时
- Android Http请求网络模拟超时
- android Http 网络超时,怎么设置
- Android http连接设置超时无效
- android HttP请求服务器,连接超时
- android关于手机连接http接口超时,虚拟机连接正常的原因
- 处理http连接超时的方法
- 拥有超时能力的HTTP下载
- Hbase的TTL字段超时设置测试
- DataGridView 控件使用
- 设计模式——工厂模式
- android framework 层源码分析常见方法
- HDU5293树形DP取一棵树上不共点的任意个树枝
- 看看这个常常被初级程序员弄不懂的 “事件”
- Android http超时选项的测试
- HDOJ 1091 A+B for Input-Output Practice (III)(水题)
- 神奇的decimal,也许面试会问到哦~
- 只能在有限的一些情形下使用 volatile 变量替代锁。要使 volatile 变量提供理想的线程安全,必须同时满足下面两个条件:1对变量的写操作不依赖于当前值。 2该变量没有包含在具有其他
- 成员函数模板
- sphinx 命令
- 二分查找(递归与非递归)
- 关于“构造函数”中的几个小问题,也许面试会问到哦~
- (WPF)依赖属性