HttpUrlConnection

HttpUrlConnection

GET和POST方式有什麼區別

  • ①Get, 它用於獲取信息,查詢數據,但它不會修改服務器上的數據,從這點來講,它是數據安全的。

    ②Post,它是可以向服務器發送修改請求,從而修改服務器的,比方說,我們要在論壇上回貼、在博客上評論,這就要用到Post了,當然它也是可以僅僅獲取數據的。

  • 區別:GET請求的數據是放在HTTP包頭中的,也就是URL之後,通常是像下面這樣定義格式的,(而Post是把提交的數據放在HTTP正文中的)。

login.action?name=hyddd&password=idontknow&verify=%E4%BD%E5%A5%BD

①,以 ? 來分隔URL和數據;

②,以& 來分隔參數;

③,如果數據是英文或數字,原樣發送;

④,如果數據是中文或其它字符,則進行BASE64編碼。

2)GET提交的數據比較少,最多1024B,因爲GET數據是附在URL之後的,而URL則會受到不同環境的限制的,比如說IE對其限制爲2K+35,而POST可以傳送更多的數據(理論上是沒有限制的,但一般也會受不同的環境,如瀏覽器、操作系統、服務器處理能力等限制,IIS4可支持80KB,IIS5可支持100KB)。

3)Post的安全性要比Get高,因爲Get時,參數數據是明文傳輸的,而且使用GET的話,還可能造成Cross-site request forgery攻擊。而POST數據則可以加密的,但GET的速度可能會快些。

HttpUrlConnection請求網絡數據實例

 URL url=new URL("http://www.lenovo.com.cn");
                    HttpURLConnection httpURLConnection= (HttpURLConnection) url.openConnection();
                    InputStream inputStream=httpURLConnection.getInputStream();
                    InputStreamReader streamReader=new InputStreamReader(inputStream);
                    BufferedReader bufferedReader=new BufferedReader(streamReader);
                    String temp="";
                    StringBuffer stringBuffer=new StringBuffer();
                    while ((temp=bufferedReader.readLine())!=null){
                        stringBuffer.append(temp);

HttpUrlConnection加載網絡圖片實例

                        HttpURLConnection conn = (HttpURLConnection) url
                                .openConnection();
                        conn.setRequestMethod("GET");
                        conn.setConnectTimeout(5000);
                        int code = conn.getResponseCode();
                        if (code == 200){
                            InputStream is = conn.getInputStream();
                            Bitmap bitmap = BitmapFactory.decodeStream(is);
                            Message msg = new Message();
                            msg.what = CHANGE_UI;
                            msg.obj = bitmap;
                            handler.sendMessage(msg);
                        } else 
                            Message msg = new Message();
                            msg.what = ERROR;
                            handler.sendMessage(msg);

String/StringBuffer/StringBuilder什麼區別

  • String 字符串常量
    StringBuffer 字符串變量(線程安全)
    StringBuilder 字符串變量(非線程安全)
    簡要的說, String 類型和 StringBuffer 類型的主要性能區別其實在於 String 是不可變的對象, 因此在每次對 String 類型進行改變的時候其實都等同於生成了一個新的 String 對象,然後將指針指向新的 String 對象,所以經常改變內容的字符串最好不要用 String ,因爲每次生成對象都會對系統性能產生影響,特別當內存中無引用對象多了以後, JVM 的 GC 就會開始工作,那速度是一定會相當慢的。
    而如果是使用 StringBuffer 類則結果就不一樣了,每次結果都會對 StringBuffer 對象本身進行操作,而不是生成新的對象,再改變對象引用。所以在一般情況下我們推薦使用 StringBuffer ,特別是字符串對象經常改變的情況下。而在某些特別情況下, String 對象的字符串拼接其實是被 JVM 解釋成了 StringBuffer 對象的拼接,所以這些時候 String 對象的速度並不會比 StringBuffer 對象慢,而StringBuilder的一個可變的字符序列是5.0新增的。此類提供一個與 StringBuffer 兼容的 API,但不保證同步。該類被設計用作 StringBuffer 的一個簡易替換,用在字符串緩衝區被單個線程使用的時候(這種情況很普遍)。如果可能,建議優先採用該類,因爲在大多數實現中,它比 StringBuffer 要快。兩者的方法基本相同。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章