Пытаюсь получить координаты адреса с помощью геокода Яндекс. Для начала я создал запрос напрямую, как это описано здесь https://tech.yandex.ru/maps/doc/geocoder/desc/concepts/input_params-docpage/
Однако он отвечает, что uri неверен. Как я понял, это из-за того, что в uri есть русские буквы. Я пытался исправить это с помощью URLEncoder, но ничего не изменилось. Будем признательны за любую помощь.
import com.sun.deploy.net.URLEncoder;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;
public class Main {
public static void main(String[] args) {
String address = "Санкт-Петербург";
try {
URLEncoder.encode(address, "UTF-8");
} catch (Exception e) {
System.out.print("BAD");
}
System.out.println(address);
HttpClient client = new HttpClient();
String request = "https://geocode-maps.yandex.ru/1.x/?geocode=" + address;
GetMethod method = new GetMethod(request);
String Lat="",Long="";
try {
client.executeMethod(method);
String s = method.getResponseBodyAsString();
System.out.print(s);
} catch (Exception e) {}
}
}
Исключение в потоке "основной" java.lang.IllegalArgumentException: Invalid uri 'https://geocode-maps.yandex.ru/1.x/?geocode=%D0%A1%D0%B0%D0%BD%D0%BA%D1%82-%D0%9F%D0%B5%D1%82%D0%B5%D1%80%D0%B1%D1%83%D1%80%D0%B3': Неверный запрос