首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django Rest框架总是返回错误400。

Django Rest框架总是返回错误400。
EN

Stack Overflow用户
提问于 2018-04-16 19:03:10
回答 1查看 1.1K关注 0票数 0

我试图使用一个Post方法,当有人发布正确的用户名和密码时,返回一个认证令牌,但是每次我得到400个错误(我尝试使用RetroFit用于安卓)。

以下是我的urls (我正在使用令牌身份验证):

代码语言:javascript
复制
from rest_framework.authtoken import views as tmp

from decaught import views

router = routers.DefaultRouter()
router.register(r'devices', views.DeviceViewSet)
router.register(r'users', views.UserViewSet)

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include(router.urls)),
    url(r'^api-auth/', tmp.obtain_auth_token),
]

以下是我如何使用改装:

员额法:

代码语言:javascript
复制
 @POST("/api-auth/")
    Call<Tokken> get_tokken(@Query("username") String username, @Query("password") String password);

登录方法:

代码语言:javascript
复制
 private void signIn() {
        boolean isValid = validate();
        if (isValid) {

            mService.get_tokken(user.getText().toString(), password.getText().toString()).enqueue(new Callback<Tokken>() {
                @Override
                public void onResponse(Call<Tokken> call, Response<Tokken> response) {
                    if (response.isSuccessful()) {

                        System.out.println("Te lo imprimo");
                        System.out.println(response.body().toString());
                        Toast.makeText(LoginActivity.this, "tokken recibido", Toast.LENGTH_SHORT).show();
                    } else {
                        int statusCode = response.code();
                        // handle request errors depending on status code
                    }
                }

                @Override
                public void onFailure(Call<Tokken> call, Throwable t) {
                    Toast.makeText(LoginActivity.this, "Error al recibir tokken", Toast.LENGTH_SHORT).show();

                    t.printStackTrace();
                    Log.d("MainActivity", "error loading from API");

                }
            });
            /*startActivity(new Intent(this, RolSelection.class));*/
        }
    }

但是每次我尝试登录服务器时,我都会收到这样的消息:

16/2018年4月20日:56:06“后/api-auth/?username=admin&password=admin1234HTTP/1.1”400 79

知道为什么会这样吗?

EN

回答 1

Stack Overflow用户

发布于 2018-04-16 19:22:24

在很大程度上,您可以将设置中的DEBUG标志设置为False,而不是同时设置ALLOWED_HOSTS。在调试模式下运行项目时,Django不要检查ALLOWED_HOSTS,但是当此标志更改为False Django时,请比较项目主机,如果在ALLOWED_HOSTS列表中找不到此主机,则引发错误400。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49864504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档