-
Notifications
You must be signed in to change notification settings - Fork 65
Description
- Version: 2.4.0
Underlying cause
I am using Algolia in Google App Engine (GAE1) and we are using requests
library to issue requests as well. However, due to GAE1 limitations, we need to use an additional library called requests_toolbelt
. This library changes underlying requests
library to use urlfetch
. Details of that can be found here.
In Requester
, Algolia library is importing HttpAdapter
which is the wrong adapter for the GAE1 that using requests
library. It needs to import AppEngineAdapter
from requests_toolbelt
to correctly read the response otherwise request will fail.
I have fixed the problem by introducing a custom code.
import sys
if sys.version_info >= (3, 0):
self._session.mount("https://", HTTPAdapter(max_retries=Retry(connect=0)))
else:
from requests_toolbelt.adapters.appengine import AppEngineAdapter
self._session.mount('https://', AppEngineAdapter(max_retries=Retry(connect=0)))
This solution only works for the GAE1 which is fine for me. This issue is also can be closed. However, it would be helpful to have a section in Algolia Docs to mention this problem since it will affect other App Engine users.