首页 > 解决方案 > 如何向 Django 测试请求添加标头?

问题描述

如何在 django 测试请求中使用标头?

我有这样的要求:

requests.get(url=MY_URL, headers={"key": MY_KEY})
requests.post(url=MY_URL, json=MY_DATA, headers={"key": MY_KEY})

它正在工作。

现在我正在为某些模块编写测试,但我对关键变量有问题,因为我已经尝试过:

 self.client.get(MY_URL, **{"key": MY_KEY})
 self.client.get(MY_URL, headers={"key": MY_KEY})
 self.client.post(MY_URL, MY_DATA, **{"key": MY_KEY})
 self.client.post(MY_URL, MY_DATA, headers={"key": MY_KEY})

所有这些请求都返回响应 400。我的猜测是标头有问题。你知道如何正确写这个吗?

标签: djangounit-testingtestingdjango-testingdjango-tests

解决方案


您应该调试准备好的请求并确保您的标头正确放置。我很确定你的语法是正确的。

response = self.client.get(...)
print(response.request.__dict__)

推荐阅读