Android中的http請求 URLEncode
阿新 • • 發佈:2019-02-01
最近在搞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 ""; }