我试图使用一个Post方法,当有人发布正确的用户名和密码时,返回一个认证令牌,但是每次我得到400个错误(我尝试使用RetroFit用于安卓)。
以下是我的urls (我正在使用令牌身份验证):
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),
]以下是我如何使用改装:
员额法:
@POST("/api-auth/")
Call<Tokken> get_tokken(@Query("username") String username, @Query("password") String password);登录方法:
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
知道为什么会这样吗?
发布于 2018-04-16 19:22:24
在很大程度上,您可以将设置中的DEBUG标志设置为False,而不是同时设置ALLOWED_HOSTS。在调试模式下运行项目时,Django不要检查ALLOWED_HOSTS,但是当此标志更改为False Django时,请比较项目主机,如果在ALLOWED_HOSTS列表中找不到此主机,则引发错误400。
https://stackoverflow.com/questions/49864504
复制相似问题