У меня есть класс asynchttpconsumer в моем django проекте, который получает веб-перехватчики с внешнего сервера. во время запроса веб-перехватчика я хотел бы отправить http-запрос на сервер авторизации, получить ответ и использовать его для завершения sh обработки запроса веб-перехватчика. Я последовал этому руководству, но расширил имеющийся у меня код. https://channels.readthedocs.io/en/latest/topics/consumers.html#asynchttpconsumer
class frontEndConsumer(AsyncHttpConsumer):
async def http_request(self, request):
header = self.scope
print(header)
# connect to auth server
conn = http.client.HTTPConnection("https://******.auth0.com", 80)
headers = { 'authorization': "Bearer *******************" }
print("request get connection")
conn.request("GET", "/userinfo", headers=headers)
res = conn.getresponse()
data = res.read()
# do some processing
print(data.decode("utf-8"))
# do other stuff
await self.http_reply(data)
return
Поскольку я использую службу аутентификации (auth0), я использовал их пример для получения информации отсюда: https://auth0.com/docs/quickstart/backend/python/02-using но Я продолжаю получать errno -2 в строке "conn.request":
Exception inside application: [Errno -2] Name or service not known
File "/home/jeremy/.local/lib/python3.6/site-packages/channels/consumer.py", line 59, in __call__
[receive, self.channel_receive], self.dispatch
File "/home/jeremy/.local/lib/python3.6/site-packages/channels/utils.py", line 51, in await_many_dispatch
await dispatch(result)
File "/home/jeremy/.local/lib/python3.6/site-packages/channels/consumer.py", line 73, in dispatch
await handler(message)
File "/home/jeremy/Documents/APbackend/myapp/webhook.py", line 59, in http_request
conn.request("GET", "/userinfo", headers=headers)
File "/usr/lib/python3.6/http/client.py", line 1264, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib/python3.6/http/client.py", line 1310, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/lib/python3.6/http/client.py", line 1259, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib/python3.6/http/client.py", line 1038, in _send_output
self.send(msg)
File "/usr/lib/python3.6/http/client.py", line 976, in send
self.connect()
File "/usr/lib/python3.6/http/client.py", line 948, in connect
(self.host,self.port), self.timeout, self.source_address)
File "/usr/lib/python3.6/socket.py", line 704, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
File "/usr/lib/python3.6/socket.py", line 745, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
[Errno -2] Name or service not known
Я не могу найти никаких ссылок на эту ошибку, или, если это даже правильный подход к тому, что я пытаюсь сделать!