2013-07-25 2 views
0

Я пытаюсь сделать базовую 64-кодировку некоторого сообщения, а затем URL-адрес закодировать сообщение и передать весь закодированный контент в качестве параметра/значения в строку запроса. http://www.xxxxxx.com/xxxxx?query=base64urlencodedmessageкодирование сообщения с использованием apache commons

Так что я хочу использовать кодировку base64, а затем кодирование URL. Я вижу, что apache предоставляет для этого хорошую библиотеку.

Таким образом, в приведенных ниже методах Apache:

1), как видеть, какой метод я хочу использовать 1), 2) и 3) 2) В методе 1 ниже, кодировании с определенным символом набором средств кодирование только с выбранным набором символов? в чем разница между 1 и 3? Что более безопасно ??? 2) Сначала я использую base64, так значит ли это, что я буду получать только байтовый массив в качестве вывода, и поэтому я должен использовать только метод 2?

URLCodec url = new URLCodec();

1) url.encode (str, charset);

2) url.encode (bytes);

3) url.encode (str);

ответ

0

должно быть ясно, для этого теста

String s1 = "test"; 
    System.out.println(s1); 
    Base64 base64 = new Base64(); 
    String s2 = base64.encodeAsString(s1.getBytes()); 
    System.out.println(s2); 
    URLCodec url = new URLCodec(); 
    String s3 = url.encode(s2); 
    System.out.println(s3); 
    s2 = url.decode(s3); 
    System.out.println(s2); 
    s1 = new String(base64.decode(s2)); 
    System.out.println(s1); 

выходного

test 
dGVzdA== 
dGVzdA%3D%3D 
dGVzdA== 
test 

BTW вы можете сделать то же самое со стандартным java.net.URLEncoder/java.net.URLDecoder и javax.bind. DatatypeConverted classes

+0

Спасибо Evgeniy ... помогает ... но могу ли я знать, в чем преимущество/недостаток указания кодировки для кодирования url ??? – pret

Смежные вопросы