Android网络连接Wifi和cmnet及cmwap的问题


某些Wifi连接,有时候出现100-continue的错误,apache http client说什么协议错误,解决办法:

Java代码  
  1. //关闭Expect:100-Continue握手  
  2. //100-Continue握手需谨慎使用,因为遇到不支持HTTP/1.1协议的服务器或者代理时会引起问题  
  3. httppost.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, false);  

使用cmwap上网,cmwap本质是使用代理上网,用httpclient,很简单,如下:

Java代码  
  1. HttpHost proxy = new HttpHost("10.0.0.172"80);//设置cmwap代理  
  2. httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);  

 如果检测呢,以下代码可以检测当前移动网络的apn代理情况。

Java代码  
  1. ConnectivityManager connectivity = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);  
  2.             if (connectivity != null) {   
  3.                 // 获取网络连接管理的对象  
  4.                 NetworkInfo info = connectivity.getActiveNetworkInfo();  
  5.   
  6.                 if (info != null && info.isConnected()) {  
  7.                     // 判断当前网络是否已经连接  
  8.                     if (info.getState() == NetworkInfo.State.CONNECTED) {  
  9.                         if(info.getTypeName().equals("WIFI")){  
  10.                                
  11.                         else{   
  12.                             Uri uri = Uri.parse("content://telephony/carriers/preferapn");  
  13.                             Cursor cr = context.getContentResolver().query(uri, null,nullnullnull);  
  14.                             while (cr != null && cr.moveToNext()) {  
  15.                                   // APN id  
  16.                                   @SuppressWarnings("unused")  
  17.                                   String id = cr.getString(cr.getColumnIndex("_id"));  
  18.                                   // APN name  
  19.                                   @SuppressWarnings("unused")  
  20.                                   String apn = cr.getString(cr.getColumnIndex("apn"));  
  21.                                   // do other things...  
  22.                                   String strProxy = cr.getString(cr.getColumnIndex("proxy"));  
  23.                                   String strPort = cr.getString(cr.getColumnIndex("port"));  
  24.                                   if(strProxy != null && !"".equals(strProxy)){  
  25.                                       Config.host = strProxy;  
  26.                                       Config.port = Integer.valueOf(strPort);  
  27.                                   }  
  28.                                     
  29.                              }  
  30.                         }   
  31.                     }  
  32.                 }   

现在很完美了,程序可以在cmnet,cmwap,以及wifi下完美运行。

相关内容