我的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'))]
答案 0 :(得分:1)
Django的开发服务器,默认情况下通过http运行应用程序。因此,当您尝试通过https到达它时,您会遇到Max retries exceeded with url
错误。
因此,您真正想要的是使用SSL / HTTPS测试/运行本地开发服务器。
有几种方法可以实现,但是我更喜欢使用RunServerPlus中的django-extensions。他们有this section用于SSL设置。
您可以在this question中找到很好的讨论。