301在没有HTTPS的情况下请求REST

时间:2015-12-07 10:08:59

标签: django https django-rest-framework

我有一个API在一个URL上工作得很好(它返回一个很好的201 CREATED):

curl -d @scan.json -H "Content-Type: application/json" -u admin -i -v "https://vincentle.pythonanywhere.com/api/beacons/"

但是当我尝试在没有SSL的情况下执行相同的请求时:

curl -d @scan.json -H "Content-Type: application/json" -u admin -i -v "http://vincentle.pythonanywhere.com/api/beacons/"

我收到301 Moved Permanently回复。

我尝试了两个修复程序:

  1. 我定义了一个没有尾部斜杠(after reading this post)的网址。这不是解决方案,请求使用或不使用斜杠将返回301。

  2. 我添加了标题" HTTP_X_FORWARDED_PROTO: https"在我的请求中,因为我的设置中有SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')行。这也不是解决方案。

  3. 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您需要查看重定向到的位置。 我敢打赌,你的配置会将http重定向到https,在这种情况下,这是一个与Django / Django REST框架无关的管理问题。