你如何使用BasicAuthentication将在Qt中进行身份验证的请求发布到django rest框架?

时间:2016-11-28 11:18:51

标签: python django qt

我想通过帖子请求发送数据,但只有经过身份验证的人才能这样做。在django应用程序中,我在 settings.py

中添加了BasicAuthentication
...
REST_FRAMEWORK = {
    'PAGE_SIZE': 10,
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.BasicAuthentication',
    )
}

并在经过身份验证的Qt帖子中

...
QNetworkRequest request;
QUrl url("https://.../data/");
url.setUserInfo("username:password");
request.setUrl(url);
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
QString json = QString(...);
QNetworkReply *reply = m_manager->post(request, json.toUtf8());
...

作为错误,服务器返回我 - > 传输https://username:password@.../data/时出错 - 服务器回复:错误请求

我无法理解问题是否在于通过用户名:密码或django app的方式。

1 个答案:

答案 0 :(得分:0)

设置用户信息只需附加"用户名:密码"到URL权限部分。有关示例,请参阅docs。对于HTTP基本身份验证,您需要使用类似于this answer的内容。