问:怎样在Http连接中设置超时和代理?

来源:互联网 发布:吉林大学网络自助中心 编辑:程序博客网 时间:2024/06/09 10:23

http://blog.csdn.net/asce1885/article/details/7855094

问:怎样在Http连接中设置超时和代理?

Http连接的超时机制能够防止连接线程的无限期等待,一般可分为connect timeout和socket timeout,在Android中可以使用HttpClient和HttpURLConnection建立Http连接,因此存在两种设置超时的方式,首先Socket等待建立连接的超时时间和Socket输入流等待数据到达的超时时间设置如下:

  1. private static final int HTTP_CONNECT_TIMEOUT = 20 * 1000;  
  2. private static final int HTTP_SOCKET_TIMEOUT = 20 * 1000;  

1)HttpClient方式

  1. HttpClient httpClient = new DefaultHttpClient();  
  2. HttpParams params = httpClient.getParams();  
  3. HttpConnectionParams.setConnectionTimeout(params, HTTP_CONNECT_TIMEOUT);  
  4. HttpConnectionParams.setSoTimeout(params, HTTP_SOCKET_TIMEOUT);  

2)HttpURLConnection方式

  1. try {  
  2.     URL url = new URL("http://www.baidu.com");  
  3.     HttpURLConnection conn = (HttpURLConnection) url.openConnection();  
  4.     conn.setConnectTimeout(HTTP_CONNECT_TIMEOUT);  
  5.     conn.setReadTimeout(HTTP_SOCKET_TIMEOUT);  
  6. catch (MalformedURLException e) {  
  7.     e.printStackTrace();  
  8. catch (IOException e) {  
  9.     e.printStackTrace();  
  10. }  

Android应用程序访问互联网时,如果处于WIFI或者CMNET、UNINET或者3GNET,CTNET等接入方式时,无需设置代理即可顺利的访问网络,但是如果处于WAP环境下,那么就需要首先设置代理,之后才能访问互联网。Android通过WAP方式联网可参见http://blog.csdn.net/ace1985/article/details/7844159 跟设置超时一样,设置代理同样有HttpClient和HttpURLConnection两种方式:

1)HttpClient方式

  1. HttpClient httpClient = new DefaultHttpClient();  
  2. String host = Proxy.getDefaultHost(); //默认代理服务器地址  
  3. int port = Proxy.getDefaultPort(); //默认代理服务器端口号  
  4. HttpHost httpHost = new HttpHost(host, port);  
  5. HttpParams params = httpClient.getParams();  
  6. params.setParameter(ConnRouteParams.DEFAULT_PROXY, httpHost); //设置默认代理  

1)HttpURLConnection方式

  1. String host = android.net.Proxy.getDefaultHost(); // 默认代理服务器地址  
  2. int port = android.net.Proxy.getDefaultPort(); // 默认代理服务器端口号  
  3. SocketAddress socketAddr = new InetSocketAddress(host, port);  
  4. // 构造代理对象  
  5. java.net.Proxy proxy = new java.net.Proxy(java.net.Proxy.Type.HTTP, socketAddr);  
  6. try {  
  7.     URL url = new URL("www.baidu.com");  
  8.     // 设置代理  
  9.     HttpURLConnection conn = (HttpURLConnection) url.openConnection(proxy);  
  10. catch (MalformedURLException e) {  
  11.     e.printStackTrace();  
  12. catch (IOException e) {  
  13.     e.printStackTrace();  
  14. }  
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 货车卖了没过户怎么办 微交易出金不了怎么办 直播时出现央视影音客户端怎么办 qq账号暂时无法登录怎么办 饿了吃东西胃疼怎么办 早上不吃饭胃疼怎么办 孕晚期胃疼呕吐怎么办 胃疼了一晚上怎么办 微信视频图像倒立怎么办 ps链接图层锁定怎么办 慕课过时间了怎么办 异地恋又要考研怎么办 阴阳师手机绑定上限了怎么办 高考口令卡丢了怎么办 网易将军令换手机了怎么办 须弥bb有弱点土怎么办 战网密码忘记了怎么办 梦三账号忘了怎么办 快手手机号被注册了怎么办 快手该手机号已注册怎么办 手机号被别人注册了快手怎么办 快手显示手机号已注册怎么办 163的邮箱忘了怎么办 河长制账号密码忘了怎么办 网易登录名忘了怎么办 网易通行证安全手机忘了怎么办 美团数据获取失败怎么办 扣扣图片加载不出来怎么办 电脑qq最小化后不见了怎么办 uwp桌面快捷图标显示异常怎么办 网易云自动切歌怎么办 捡到小米手机怎么办才能自己用 dnf启动安装程序出错怎么办 苹果手机相册视频下载出错怎么办 苹果7软件闪退怎么办 微信上有钱账号就是怎么办 手机网速不给力怎么办 xp系统登录密码忘了怎么办 手机百度云网络出错怎么办 百度账号提示异常风险怎么办 刷xp框架卡米怎么办