Java - конвертировать строку в действительный объект URI - PullRequest
70 голосов
/ 21 февраля 2009

Я пытаюсь получить объект java.net.URI из String. В строке есть несколько символов, которые необходимо заменить на их escape-последовательности в процентах. Но когда я использую URLEncoder для кодирования строки с кодировкой UTF-8, даже / заменяются их escape-последовательностями.

Как я могу получить действительный закодированный URL из объекта String?

http://www.google.com? Q = a b дает http% 3A% 2F% 2www.google.com ... , тогда как я хочу, чтобы вывод быть http://www.google.com? q =% 20b

Может кто-нибудь подскажите, пожалуйста, как этого добиться.

Я пытаюсь сделать это в приложении для Android. Так что у меня есть доступ к ограниченному количеству библиотек.

Ответы [ 11 ]

0 голосов
/ 12 февраля 2015

В итоге я использовал httpclient-4.3.6:

import org.apache.http.client.utils.URIBuilder;
public static void main (String [] args) {
    URIBuilder uri = new URIBuilder();
    uri.setScheme("http")
    .setHost("www.example.com")
    .setPath("/somepage.php")
    .setParameter("username", "Hello Günter")
    .setParameter("p1", "parameter 1");
    System.out.println(uri.toString());
}

Вывод будет:

http://www.example.com/somepage.php?username=Hello+G%C3%BCnter&p1=paramter+1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...