歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android網絡連接Wifi和cmnet及cmwap的問題

Android網絡連接Wifi和cmnet及cmwap的問題

日期:2017/3/1 11:09:23   编辑:Linux編程

某些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. if (info != null && info.isConnected()) {
  6. // 判斷當前網絡是否已經連接
  7. if (info.getState() == NetworkInfo.State.CONNECTED) {
  8. if(info.getTypeName().equals("WIFI")){
  9. else{
  10. Uri uri = Uri.parse("content://telephony/carriers/preferapn");
  11. Cursor cr = context.getContentResolver().query(uri, null,null, null, null);
  12. while (cr != null && cr.moveToNext()) {
  13. // APN id
  14. @SuppressWarnings("unused")
  15. String id = cr.getString(cr.getColumnIndex("_id"));
  16. // APN name
  17. @SuppressWarnings("unused")
  18. String apn = cr.getString(cr.getColumnIndex("apn"));
  19. // do other things...
  20. String strProxy = cr.getString(cr.getColumnIndex("proxy"));
  21. String strPort = cr.getString(cr.getColumnIndex("port"));
  22. if(strProxy != null && !"".equals(strProxy)){
  23. Config.host = strProxy;
  24. Config.port = Integer.valueOf(strPort);
  25. }
  26. }
  27. }
  28. }
  29. }

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

Copyright © Linux教程網 All Rights Reserved