Как создать URL-адрес в java?

Я строю String со StringBuilder

StringBuilder builder = new StringBuilder();
builder.append("my parameters");
builder.append("other parameters");

Затем я создаю Url

Url url = new Url(builder.toString());

И затем я попробую подключение

HttpURLConnection connection = (HttpURLConnection) url.openConnection();

Но, похоже, URL-адрес не соответствует результатам, которые я получаю. Он, как и какой-то параметр, передается ложным. Вот почему я думаю, что проблема находится в части StringBuilder.

Проблема заключается в двойном параметре, который я пытаюсь передать.

double longitude = 23.433114;
String lng = String.ValueOf(longitude);

И затем я поместил его в URL. Но если я передам его как строку, результат будет правильным.

String lng = "23.433114"

Требуется ли UrlEncoding? Я попробую то, что предлагается ниже.

Ответ 1

Попробуйте apache URIBuilder: [Документация]

import org.apache.http.client.utils.URIBuilder;

// ...

URIBuilder b = new URIBuilder("http://example.com");
b.addParameter("t", "search");
b.addParameter("q", "apples");

Url url = b.build().toUrl();

Зависимость от Maven:

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.1</version>
</dependency>

Ответ 2

Поскольку вы хотите создать URL-адрес и использовать его с помощью запроса GET, было бы лучше использовать библиотеку, которая поможет вам в этом процессе. Вы можете использовать HttpComponents или другую библиотеку, например Unirest, которая построен поверх HttpComponents, который облегчает всю эту работу.

Вот пример использования Unirest:

HttpResponse<String> stringResponse = Unirest.get("https://www.youtube.com/results")
    .field("search_query", "eñe")
    .asString();
System.out.println(stringResponse.getBody());

Это позволит получить ответ HTML, соответствующий всем результатам поиска на youtube, используя "eñe". Символ ñ будет закодирован для вас.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я не привязан к Unirest в любом случае. Я не разработчик или спонсор этого проекта. Я всего лишь счастливый пользователь этой структуры.