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 要快。兩者的方法基本相同。