From 6f320c12259974bb9f0591754ffd0a9c209cdba8 Mon Sep 17 00:00:00 2001 From: rene Date: Sat, 25 Apr 2026 22:40:47 +0200 Subject: [PATCH] =?UTF-8?q?OSM:=20Referer-Header=20gegen=20406=20=E2=80=94?= =?UTF-8?q?=20overpass-api.de=20sofort=20wieder=20nutzbar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 406 von overpass-api.de wird durch fehlenden Referer-Header ausgelöst, nicht durch einen zeitbasierten IP-Ban. Mit Referer: https://banyaro.app/ antwortet der Server sofort mit 200. OVERPASS_HEADERS enthält jetzt User-Agent + Referer. --- backend/routes/osm.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/backend/routes/osm.py b/backend/routes/osm.py index 31d6778..b9433a1 100644 --- a/backend/routes/osm.py +++ b/backend/routes/osm.py @@ -29,6 +29,10 @@ _overpass_sem = asyncio.Semaphore(1) _overpass_last_req = 0.0 _OVERPASS_MIN_DELAY = 2.0 # Sekunden zwischen Anfragen _OVERPASS_UA = 'BanYaro/1.0 (https://banyaro.app; dog-walking PWA; contact: mail@motocamp.de)' +_OVERPASS_HEADERS = { + 'User-Agent': _OVERPASS_UA, + 'Referer': 'https://banyaro.app/', # von overpass-api.de verlangt gegen 406 +} # Referenzen auf laufende Hintergrund-Tasks — verhindert GC vor Abschluss _bg_tasks: set = set() @@ -86,7 +90,7 @@ async def _fetch_overpass(query): await asyncio.sleep(wait) async with httpx.AsyncClient( timeout=40, - headers={'User-Agent': _OVERPASS_UA}, + headers=_OVERPASS_HEADERS, ) as client: r = await client.post(url, data={'data': query}) _overpass_last_req = time.monotonic()