From e5e7485d83f013ed6f229e0e99bbe367672199ab Mon Sep 17 00:00:00 2001 From: Taylor Smock Date: Sat, 28 Sep 2019 08:41:56 -0600 Subject: [PATCH] Add User-Agent headers Signed-off-by: Taylor Smock --- .../plugins/rapid/backend/RapiDDataUtils.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/openstreetmap/josm/plugins/rapid/backend/RapiDDataUtils.java b/src/main/java/org/openstreetmap/josm/plugins/rapid/backend/RapiDDataUtils.java index d624397..5856c2c 100644 --- a/src/main/java/org/openstreetmap/josm/plugins/rapid/backend/RapiDDataUtils.java +++ b/src/main/java/org/openstreetmap/josm/plugins/rapid/backend/RapiDDataUtils.java @@ -1,6 +1,8 @@ // License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.plugins.rapid.backend; +import static org.openstreetmap.josm.tools.I18n.tr; + import java.io.IOException; import java.io.InputStream; import java.net.URL; @@ -24,6 +26,8 @@ import org.openstreetmap.josm.io.IllegalDataException; import org.openstreetmap.josm.io.OsmReader; import org.openstreetmap.josm.plugins.rapid.RapiDPlugin; import org.openstreetmap.josm.spi.preferences.Config; +import org.openstreetmap.josm.tools.HttpClient; +import org.openstreetmap.josm.tools.HttpClient.Response; import org.openstreetmap.josm.tools.Logging; /** @@ -49,10 +53,19 @@ public final class RapiDDataUtils { String urlString = getRapiDURL(); try { final URL url = new URL(urlString.replace("{bbox}", bbox.toStringCSV(","))); - Logging.debug("{0}: Getting {1}", RapiDPlugin.NAME, url.toString()); - - inputStream = url.openStream(); + HttpClient client = HttpClient.create(url); + StringBuilder defaultUserAgent = new StringBuilder(); + defaultUserAgent.append(client.getHeaders().get("User-Agent")); + if (defaultUserAgent.length() == 0) { + defaultUserAgent.append("JOSM"); + } + defaultUserAgent.append(tr("/ {0} {1}", RapiDPlugin.NAME, RapiDPlugin.getVersionInfo())); + client.setHeader("User-Agent", defaultUserAgent.toString()); + Logging.debug("{0}: Getting {1}", RapiDPlugin.NAME, client.getURL().toString()); + Response response = client.connect(); + inputStream = response.getContent(); dataSet.mergeFrom(OsmReader.parseDataSet(inputStream, null)); + response.disconnect(); } catch (UnsupportedOperationException | IllegalDataException | IOException e) { Logging.debug(e); } finally {