Tips : Menangani Masalah Implementasi Android Url Encode

Dalam implementasi aplikasi sering kali kita perlu melakukan request ke host dengan mengirimkan parameter,namun adakalnya value dari parameter tersebut memiliki karakter-karakter tertentu yang mnyulitkan ketika akan di lempar. Memang kita bisa menggunakan fungsi bawaan miliki java berupa url encode. Namun fungsi tersebut tidaklah selalu berfungsi sesuai. Berikut ini tips ini menangani jika anda melempar request berisi nilai yang sensitif.

1. jangan melakukan encode pada seluruh url melainkan hanya pada nilai yang memungkinkan memiliki nilai yang sensitif :

String query = URLEncoder.encode("apples oranges", "utf-8");
    String url = "http://alfach.com/search?q=" + query;

2. Mungkin cara yang lebih baik, yaitu buat fungsi sendiri untuk melakukan konversi url dengan format url pada umumnya.Berikut ini fungsi yang dapat anda gunakan :

public static String convertURL(String str) {
        String url = null;
        try{
        url = new String(str.trim().replace(" ", "%20").replace("&", "%26")
            .replace(",", "%2c").replace("(", "%28").replace(")", "%29")
            .replace("!", "%21").replace("=", "%3D").replace("< ", "%3C")
            .replace(">", "%3E").replace("#", "%23").replace("$", "%24")
            .replace("'", "%27").replace("*", "%2A").replace("-", "%2D")
            .replace(".", "%2E").replace("/", "%2F").replace(":", "%3A")
            .replace(";", "%3B").replace("?", "%3F").replace("@", "%40")
            .replace("[", "%5B").replace("\", "%5C").replace("]", "%5D")
            .replace("_", "%5F").replace("`", "%60").replace("{", "%7B")
            .replace("|", "%7C").replace("}", "%7D"));
        }catch(Exception e){
            e.printStackTrace();
        }
        return url;
    }

Mungkin Anda juga menyukai

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *