【发布时间】:2020-08-18 09:07:11
【问题描述】:
我的 Django 代码有问题:
我试过这个:
requests.post('https://localhost:8000/api/test/', data=data, headers={'Content-Type': 'application/json'}, verify=False)
但我得到了这个:
{SSLError}HTTPSConnectionPool(host='localhost', port=8000): Max retries exceeded with url: /api/test/ (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:852)'),))
我实现了使用 HTTP 而不是 https 来解决问题,但我想使用 https。
知道所有这些都在本地主机上,我怎么能做到这一点?
非常感谢!
编辑:
这是来自 api 应用程序的 urls.py:
from django.urls import path, include
from django.views.decorators.csrf import csrf_exempt
from rest_framework_jwt.views import obtain_jwt_token, refresh_jwt_token
from API import views as API views
app_name = 'api'
from API.views import LoginViewCustom
urlpatterns = [
path('test/', apiviews.Test.as_view(), name='test')
]
在其他 urls.py 中:
urlpatterns = [path('api/', include('api.urls', namespace='api'))]
【问题讨论】:
-
请出示您的 urls.py
-
你必须有证书才能使用HTTPS,你有吗?您可以为 localhost 创建一个,请参阅 Let's Encrypt 文档:letsencrypt.org/docs/certificates-for-localhost。另一个可以帮助您的工具是 ngrok,您可以使用 HTTP 和 HTTPS 为 localhost 创建一个隧道。
标签: python python-3.x django https python-requests