Java-HttpURLConnection到立交桥服务器

Java-HttpURLConnection到立交桥服务器,java,httprequest,bad-request,http-response-codes,overpass-api,Java,Httprequest,Bad Request,Http Response Codes,Overpass Api,我正试图用Java建立一个服务器连接到立交桥。但是当我的请求参数中有一个空格时,我总是得到一个糟糕的请求响应,比如Bulach-West。 我使用的代码如下: StringBuilder content = new StringBuilder(); URL url = new URL("http://www.overpass-api.de/api/interpreter?data=[out:xml];node[\"railway\"=\"tram_stop\"][\"name\" = \"Bu

我正试图用Java建立一个服务器连接到立交桥。但是当我的请求参数中有一个空格时,我总是得到一个糟糕的请求响应,比如Bulach-West。 我使用的代码如下:

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); 
没有空格的请求可以正常工作。我现在能做什么? 顺致敬意,
Nazar

我认为您必须像这里那样对字符串参数进行编码

谢谢您的帮助。我找到了一个有效的解决办法

起初,我尝试使用java类
URLEncoder
对我的url进行编码,但由于[\“railway\”=“tram\u stop\”]中的一些特定字符,编码结果不正确

所以我所做的就是复制一个示例url,如 (“铁路”=“电车站”[\“姓名”=“布拉赫西部”];out;)

并将其传递到我的web浏览器。在发送请求并获得正确响应后,我从web浏览器复制了链接并将其添加到java代码中。发送请求会自动编码我的url

现在看起来像:(;)