当帖子获得401时,Nginx + uwsgi不提供内容

时间:2013-12-17 10:34:44

标签: python nginx uwsgi http-status-code-401

我正在使用python并且只是在django上构建一个API服务器。 我用urllib2编写了一个脚本来访问这个服务器。

要访问此API,请求必须具有basic-auth信息。如果授权失败,API会给出代码为401的响应。

此授权检查几个参数。所以我添加内容作为回应。像这样:

    API_ERROR_DEF = {
        10001: 'Request without Basic Auth.',
        30001: 'Timestamp outdated.',
        ...
        ...
        'default': 'API Error: uncatched error.',
   }

   def _request_auth(error_code):
       response = HttpResponse()
       response['WWW-Authenticate'] = 'Basic realm=testMyAPI'
       response.status_code = 401 
       response.content = API_ERROR_DEF.get(error_code, API_ERROR_DEF['default'])
       return response

但是有一个问题。 当我直接在bash中运行此服务器时,我可以使用脚本获取包含内容的401响应。像这样:

    -> print e.read()
    (Pdb) l
     92                     res = urllib2.urlopen(req)
     93                     print res.read()
     94             except urllib2.HTTPError as e:
     95                     traceback.print_exc()
     96                     __import__("pdb").set_trace()
     97  ->                 print e.read()
     98     
     99     if "__main__" == __name__:
    100             test(sys.argv[1])
    101             #ret = make_signature(sys.argv[1], sys.argv[2])
    102             #print ret
    (Pdb) c
    Timestamp outdated.

但是当我在nginx + uwsgi上运行这个服务器时。我发现服务器在脚本发布时没有给我任何内容,并返回401响应。但是,只有我发送方法为获取的请求时,此内容才会再次显示。

我认为nginx或uwsgi上必须有一些影响它的选项。但是我在他们的文件中搜索了很长时间,只让我更加焦虑。

所以任何人都可以帮助我。

0 个答案:

没有答案