1. 程式人生 > >Android中的http請求 URLEncode

Android中的http請求 URLEncode

最近在搞http相關的處理,碰到一個URLEncode的問題,簡單記錄下,供後期查詢。

傳送給服務端的請求中的引數值,如果含有特殊符號,需要是做URLEncode,服務端才可以正常解析,否則可能會出錯。

URLEncode主要是把一些特殊字元轉換成轉移字元,比如:&要轉換成&這樣的。

如果不轉換,可能會在執行時直接報錯。

如果全部轉換,也會報錯,因為會把其中非引數的部分也給轉換了。

所以要確保只有引數部分被轉換。

轉換方式:

public static String toURLEncoded(String paramString) {
		if (paramString == null || paramString.equals("")) {
			LogD("toURLEncoded error:"+paramString);
			return "";
		}
		
		try
		{
			String str = new String(paramString.getBytes(), "UTF-8");
			str = URLEncoder.encode(str, "UTF-8");
			return str;
		}
		catch (Exception localException)
		{
			LogE("toURLEncoded error:"+paramString, localException);
		}
		
		return "";
	}


返回的引數的轉換:

public static String toURLDecoded(String paramString) {
		if (paramString == null || paramString.equals("")) {
			LogD("toURLDecoded error:"+paramString);
			return "";
		}
		
		try
		{
			String str = new String(paramString.getBytes(), "UTF-8");
			str = URLDecoder.decode(str, "UTF-8");
			return str;
		}
		catch (Exception localException)
		{
			LogE("toURLDecoded error:"+paramString, localException);
		}
		
		return "";
	}