From 4496ce31aaafef6bd09004878a4e41fc243bc777 Mon Sep 17 00:00:00 2001
From: qho <qho@odoo.com>
Date: Wed, 1 Apr 2020 08:12:31 +0000
Subject: [PATCH] [FIX] base_geolocalize: access blocked by OpenStreetMap

The geolocation service from OpenStreetMap will not be unblocked until a
'meaningful' and identical user-agent added in the request.

opw-2221857

closes odoo/odoo#48805

X-original-commit: 9018039b835547ea4adbc32a23901214613a033a
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
---
 addons/base_geolocalize/models/base_geocoder.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/addons/base_geolocalize/models/base_geocoder.py b/addons/base_geolocalize/models/base_geocoder.py
index 5c2cee79ccad..f3e8d78528f3 100644
--- a/addons/base_geolocalize/models/base_geocoder.py
+++ b/addons/base_geolocalize/models/base_geocoder.py
@@ -87,8 +87,12 @@ class GeoCoder(models.AbstractModel):
             return None
         url = 'https://nominatim.openstreetmap.org/search'
         try:
-            result = requests.get(url, {'format': 'json', 'q': addr}).json()
+            headers = {'User-Agent': 'Odoo (http://www.odoo.com/contactus)'}
+            response = requests.get(url, headers=headers, params={'format': 'json', 'q': addr})
             _logger.info('openstreetmap nominatim service called')
+            if response.status_code != 200:
+                _logger.error('Request to openstreetmap failed.\nCode: %s\nContent: %s' % (response.status_code, response.content))
+            result = response.json()
         except Exception as e:
             self._raise_query_error(e)
         geo = result[0]
-- 
GitLab