2010-05-30 2 views
0

Я работаю над Java. Я называю GET url на своей машине с помощью Java. Вот строка url с аргументами.Проблема генерации GET url

listen.executeUrl("http://localhost/post_message.php?query_string="+str); 

Я принимаю str как пользовательский ввод.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
System.out.print("Enter query: "); 
str = br.readLine(); 

Как кодировать str в аргумент GET. Напр.

str -> test query 

url -> http://localhost/post_message.php?query_string=test%20query 

ответ

1
String query = URLEncoder.encode(str, "UTF-8").replaceAll("\\+", "%20"); 

Обратите внимание, что URLEncoder заменяет пробелы с +, не %20. Вот отличия от detailed discussion.

+0

Не использует '+' в принятой практике строки запроса, даже если это не совсем правильно, она работает во всех случаях. – mdma

1

Используйте encode() метод java.net.URLEncoder класса.

1

Вам нужно будет закодировать строку запроса, например.

str = URLEncoder.encode(str, "UTF-8"); 

Вы устанавливаете второй аргумент для кодировки, на которую настроен ваш сервер.

См URLEncoder.encode

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