Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> Android通過HttpURLConnection與HttpClient聯網代理網關設置

Android通過HttpURLConnection與HttpClient聯網代理網關設置

編輯:Android開發教程

Android聯網主要使用HttpURLConneciton和HttpClient進行聯網,在手機聯網 的時候,我們優先選擇wifi網絡,其次在選擇移動網絡,這裡所述移動網絡主要 指cmwap。

大家都知道cmwap連接需要設置代理地址和端口,那麼,android程序中如何設 置代理呢?這是個問題。

HttpURLConnection設置代理

//當我們使用的是中國移動的手機網絡時,下面方法可以直接獲取得到

10.0.0.172,80端口  
String host=android.net.Proxy.getDefaultHost();//通過andorid.net.Proxy

可以獲取默認的代理地址  
int port =android.net.Proxy.getDefaultPort();//通過andorid.net.Proxy可

以獲取默認的代理端口  
SocketAddress sa=new InetSocketAddress(host,port);  
//定義代理,此處的Proxy是源自java.net  
Proxy proxy=new Proxy(java.net.Proxy.Type.HTTP,sa);  
URL getUrl = new URL(“www.baidu.com”);   
HttpURLConnection con = (HttpURLConnection) getUrl.openConnection

(proxy);//設置代理

HttpClient設置代理

DefaultHttpClient httpClient=new DefaultHttpClient();  
String host=Proxy.getDefaultHost();//此處Proxy源自android.net  
int port = Proxy.getPort(context);//同上  
HttpHost httpHost = new HttpHost(host, port);   
//設置代理  
httpClient.getParams().setParameter

(ConnRouteParams.DEFAULT_PROXY,httpHost);  
HttpGet httpGet=new HttpPost("<a 

href="http://www.baidu.com">www.baidu.com</a>")

;  
HttpResponse response=httpClient.execute(httpGet);

第一種方式:通過HttpURLConnection來訪問

public static InputStream getHttpURLConnectionInputStream(Context 

context,String requestUrl,Map<String, String> param) {  
              
        URL url;  
        HttpURLConnection conn = null;  
        InputStream input = null;  
        try {  
            url = new URL(requestUrl);  
            if(getAPNType(context)==NetWorkUtil.CMWAP)   //當請求的網絡為wap的時候,就需要添加中國移動代理  
            {  
                Proxy proxy = new Proxy(java.net.Proxy.Type.HTTP,new InetSocketAddress("10.0.0.172", 80));  
                conn = (HttpURLConnection) url.openConnection(proxy);  
            }else{  
                  conn = url.openConnection();  
              }             
                conn.setConnectTimeout(10000);    //請求超時  
                conn.setRequestMethod("POST");  //請求方式  
                conn.setReadTimeout(1000);   //讀取超時  
                conn.setDoOutput(true);  
                conn.setDoInput(true);  
                conn.setUseCaches(false);  
                conn.setRequestProperty("Charset", "UTF-8");  
                conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");  
                OutputStream os = conn.getOutputStream();      
                StringBuilder sb = new StringBuilder();  
                Iterator<String> it = param.keySet().iterator();  
                while (it.hasNext()) {  
                    String key = it.next();  
                    String value = param.get(key);  
                    sb.append(key).append("=").append(value).append("&");  
                }  
                String p = sb.toString().substring(0, sb.length()-1);  
                System.out.println("請求的參數"+p);  
                os.write(p.getBytes("utf-8"));  
                os.close();  
                if(conn!=null)  
                {  
                    input = conn.getInputStream();  
                }  
                  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
        return input;  
    }

上面這種方式就是HttpURLConnection ,這種方式在android開發中也是比較 常用的,希望朋友們也要熟悉的掌握!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved