Ошибка создания строки URL в java

64
8

Мне сложно создавать строку URL, которую я хочу использовать для HttpURLConnection.

Вот строка, которую я хочу передать

http://api.fixer.io/latest?base=USD&symbols=USD,GBP

Вышеуказанная строка должна иметь все параметры как динамические, две строки, которые я использую, - part1 и другие default_actv2

Я попытался построить строку следующим образом

http://api.fixer.io/latest?base="+part1+"&symbols="+part1+","+default_actv2 

и передавая его в jsonTask следующим образом

new JSONTask().execute("http://api.fixer.io/latest?base="+part1+"&symbols="+part1+","+default_actv2);

Когда я печатаю значение, мой код берет его как

http://api.fixer.io/latest?base=AED &symbols=AED ,INR

Обратите внимание на дополнительные пробелы после AED, в результате такой строки. Я получаю ошибку со стороны сервера.

Может ли кто-нибудь помочь объяснить мне правильный способ построения строки с некоторым кодом. Я знаю, что есть тонны нитей, которые отвечают на этот вопрос, но почему-то я не могу заставить эту работу работать.

Заранее спасибо

спросил(а) 2021-01-19T17:53:52+03:00 6 месяцев, 2 недели назад
1
Решение
91

Вы можете использовать.trim() в своей части 1, чтобы справиться с дополнительным пространством.

ответил(а) 2021-01-19T17:53:52+03:00 6 месяцев, 2 недели назад
78

Вы можете использовать Apache URIBuilder.


URI uri = new URIBuilder()
.setScheme("http")
.setHost("api.fixer.io")
.setPath("/latest")
.addParameter("base", part1)
.addParameter("symbol", part1 + "," + default_actv2)
.build();
uri.toString();

ответил(а) 2021-01-19T17:53:52+03:00 6 месяцев, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема