Как создать 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 в любом случае. Я не разработчик или спонсор этого проекта. Я всего лишь счастливый пользователь этой структуры.