现在的位置: 首页 > 综合 > 正文

Android通过HttpURLConnection与HttpClient联网代理网关设置

2014年01月24日 ⁄ 综合 ⁄ 共 1896字 ⁄ 字号 评论关闭

Android联网主要使用HttpURLConneciton和HttpClient进行联网,在手机联网的时候,我们优先选择wifi网络,其次在选择移动网络,这里所述移动网络主要指cmwap。

大家都知道cmwap连接需要设置代理地址和端口,那么,android程序中如何设置代理呢?

1、HttpURLConnection设置代理

  1. //当我们使用的是中国移动的手机网络时,下面方法可以直接获取得到10.0.0.172,80端口  
  2. String host=android.net.Proxy.getDefaultHost();//通过andorid.net.Proxy可以获取默认的代理地址  
  3. int port =android.net.Proxy.getDefaultPort();//通过andorid.net.Proxy可以获取默认的代理端口  
  4. SocketAddress sa=new InetSocketAddress(host,port);  
  5. //定义代理,此处的Proxy是源自java.net  
  6. Proxy proxy=new Proxy(java.net.Proxy.Type.HTTP,sa);  
  7. URL getUrl = new URL(“www.baidu.com”);   
  8. HttpURLConnection con = (HttpURLConnection) getUrl.openConnection(proxy);//设置代理  

2、HttpClient设置代理

  1. DefaultHttpClient httpClient=new DefaultHttpClient();  
  2. String host=Proxy.getDefaultHost();//此处Proxy源自android.net  
  3. int port = Proxy.getPort(context);//同上  
  4. HttpHost httpHost = new HttpHost(host, port);   
  5. //设置代理  
  6. httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY,httpHost);  
  7. HttpGet httpGet=new HttpPost("<a href="http://www.baidu.com">www.baidu.com</a>");  
  8. HttpResponse response=httpClient.execute(httpGet);  

3、判断手机是否联网,是否是wifi

  1. boolean isConnect(){  
  2.     ConnectivityManager cm = (ConnectivityManager)   
  3.         this.getSystemService(Context.CONNECTIVITY_SERVICE);  
  4.     if(cm!=null){  
  5.         return true;  
  6.     }  
  7.     return false;  
  8. }  
  9. boolean isWifi(){  
  10.     ConnectivityManager cm = (ConnectivityManager)  
  11.         context.getSystemService(Context.CONNECTIVITY_SERVICE);  
  12.     if(cm!=null){  
  13.         NetworkInfo  ni = cm.getActiveNetworkInfo();  
  14.         if(!ni.getTypeName().equals("WIFI")){  
  15.             /* 
  16.              * ni.getTypeNmae()可能取值如下 
  17.              * WIFI,表示WIFI联网 
  18.              * MOBILE,表示GPRS、EGPRS 
  19.              * 3G网络没有测试过 
  20.              * WIFI和(E)GPRS不能共存,如果两个都打开,系统仅支持WIFI 
  21.              */  
  22.             return true;  
  23.         }  
  24.     }  
  25.     return false;  

抱歉!评论已关闭.