0

Я пытаюсь создать подключение к серверу с помощью эстакады с Java. Но я всегда получаю плохой запрос ответа, когда в моем параметре запроса есть пробел, например Bulach West. Код я использовал следующий:Java - HttpURLConnection для обхода сервера

StringBuilder content = new StringBuilder(); 

URL url = new URL("http://www.overpass-api.de/api/interpreter?data=[out:xml];node[\"railway\"=\"tram_stop\"][\"name\" = \"Bulach West\"];out;"); 

HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 
urlConnection.setRequestMethod("POST"); 
System.out.println("Content-Type: " +urlConnection.getContentType()); 
System.out.println("Content-Length: " + urlConnection.getContentLength()); 
System.out.println("Date: " +new Date(urlConnection.getDate())); 
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); 
String line; 

urlConnection.connect(); 

while ((line = bufferedReader.readLine()) != null) { 
     content.append(line + "\n"); 
} 
bufferedReader.close(); 
System.out.println("output:\n "+content); 

просит без пробелов работать нормально. Что я могу сделать сейчас? С наилучшими пожеланиями, Назар

ответ

0

Спасибо за помощь m8. Я нашел рабочее решение.

Сначала я пытался использовать Java-класс URLEncoder закодировать свой URL, но из-за некоторых конкретных персонажей, таких как в [\„ж \“= \„tram_stop \“] закодированный результат был . не правильно

Так что я сделал это, чтобы скопировать пример URL, как (http://www.overpass-api.de/api/interpreter?data=[out:xml];node[ \ "ж \" = \ "tram_stop \"] [\ "имя \" = \ "Bulach Запад \"], из;)

и передать его в мой веб-браузер. После отправки запроса и получения правильного ответа я скопировал ссылку из своего веб-браузера и превратил его в мой код Java. Отправка запроса автоматически закодировала мой URL.

Теперь это выглядит: (http://www.overpass-api.de/api/interpreter?data[out:xml];node[%22highway%22=%22bus_stop%22[%22name%22%20=%20%22Bulach+West%22];out;)