Геокод API Яндекса

Пытаюсь получить координаты адреса с помощью геокода Яндекс. Для начала я создал запрос напрямую, как это описано здесь 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': Неверный запрос


person Community    schedule 05.05.2016    source источник


Ответы (1)


На самом деле вы не кодировали строку.

Пожалуйста, попробуй

address = URLEncoder.encode(... 
person OneCricketeer    schedule 05.05.2016
comment
ооо :) Спасибо, помогло - person ; 05.05.2016