Https-вызов из приложения в WSL2 в приложение в Windows 10

Я работаю над двумя веб-приложениями (далее App1 и App2), и оба работают на моем ПК с Windows 10. Я пытаюсь сделать https вызов из бэкенда App2 и бэкенда App1.

App1 - это приложение, написанное на ASP.NET и работающее непосредственно на Windows 10. Это приложение доступно через браузер по адресу https://localhost:44311/

App2 написано на Django и работает в Ubuntu-20.04 через WSL2 на том же компьютере с Windows. Это приложение можно найти через браузер по адресу http://localhost:8000/

Инициальный тест

В App1 я выставляю тестовую функцию под названием GetMyResponse:

[HttpGet]
[AllowAnonymous]
[Route("GetMyResponse")]
public IActionResult GetMyResponse() {
    return Ok("Hello World!");
}

Я попытался подключиться к https://localhost:44311/GetMyResponse/ через веб-браузер, и, похоже, все работает правильно.

Попытка 1

Я пытаюсь сделать https вызов из бэкенда App2 в бэкенд App1 следующим образом:

import requests

class App1APIView(APIView):

    def get(self, request, *args, **kwargs):
        response = requests.get("https://localhost:44311/GetMyResponse/", verify=False)
        return Response(response.content)

Это дает мне следующую ошибку (я пытался отключить брандмауэр windows, но ничего не изменилось):

Traceback (most recent call last):
  File "/mnt/d/Projects/app2/venv/lib/python3.8/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/mnt/d/Projects/app2/venv/lib/python3.8/site-packages/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/mnt/d/Projects/app2/venv/lib/python3.8/site-packages/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/mnt/d/Projects/app2/venv/lib/python3.8/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "/mnt/d/Projects/app2/venv/lib/python3.8/site-packages/django/views/generic/base.py", line 71, in view
    return self.dispatch(request, *args, **kwargs)
  File "/mnt/d/Projects/app2/venv/lib/python3.8/site-packages/rest_framework/views.py", line 505, in dispatch
    response = self.handle_exception(exc)
  File "/mnt/d/Projects/app2/venv/lib/python3.8/site-packages/rest_framework/views.py", line 465, in handle_exception
    self.raise_uncaught_exception(exc)
  File "/mnt/d/Projects/app2/venv/lib/python3.8/site-packages/rest_framework/views.py", line 476, in raise_uncaught_exception
    raise exc
  File "/mnt/d/Projects/app2/venv/lib/python3.8/site-packages/rest_framework/views.py", line 502, in dispatch
    response = handler(request, *args, **kwargs)
  File "/mnt/d/Projects/app2/evar/sizing/api/views.py", line 74, in get
    response = requests.get("https://localhost:44311/GetMyResponse/", verify=False)
  File "/mnt/d/Projects/app2/venv/lib/python3.8/site-packages/requests/api.py", line 76, in get
    return request('get', url, params=params, **kwargs)
  File "/mnt/d/Projects/app2/venv/lib/python3.8/site-packages/requests/api.py", line 61, in request
    return session.request(method=method, url=url, **kwargs)
  File "/mnt/d/Projects/app2/venv/lib/python3.8/site-packages/requests/sessions.py", line 530, in request
    resp = self.send(prep, **send_kwargs)
  File "/mnt/d/Projects/app2/venv/lib/python3.8/site-packages/requests/sessions.py", line 643, in send
    r = adapter.send(request, **kwargs)
  File "/mnt/d/Projects/app2/venv/lib/python3.8/site-packages/requests/adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='localhost', port=44311): Max retries exceeded with url: /GetMyResponse/ (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f20694e8490>: Failed to establish a new connection: [Errno 111] Connection refused'))

Попытка 2

Я пытался следовать этому решению: Доступ к localhost, запущенному в Windows, изнутри WSL2?

import requests

class App1APIView(APIView):

    def get(self, request, *args, **kwargs):
        response = requests.get("https://winhost:44311/GetMyResponse/", verify=False)
        return Response(response.content)

Во время выполнения я не нахожу никаких ошибок, но ответ следующий:

"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\"http://www.w3.org/TR/html4/strict.dtd\">\r\n<HTML><HEAD><TITLE>Bad Request</TITLE>\r\n<META HTTP-EQUIV=\"Content-Type\" Content=\"text/html; charset=us-ascii\"></HEAD>\r\n<BODY><h2>Bad Request - Invalid Hostname</h2>\r\n<hr><p>HTTP Error 400. The request hostname is invalid.</p>\r\n</BODY></HTML>\r\n"
Вернуться на верх