Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Nginx+;当帖子获得401分时,uwsgi不会给出内容_Python_Nginx_Uwsgi_Http Status Code 401 - Fatal编程技术网

Python Nginx+;当帖子获得401分时,uwsgi不会给出内容

Python Nginx+;当帖子获得401分时,uwsgi不会给出内容,python,nginx,uwsgi,http-status-code-401,Python,Nginx,Uwsgi,Http Status Code 401,我正在使用python,只是在django上构建了一个API服务器。 我使用urllib2编写了一个脚本来访问这个服务器 要访问此API,请求必须具有基本身份验证信息。若授权失败,API将给出代码为401的响应 此授权检查多个参数。所以我添加了come内容作为回应。像这样: API_ERROR_DEF = { 10001: 'Request without Basic Auth.', 30001: 'Timestamp outdated.',

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

要访问此API,请求必须具有基本身份验证信息。若授权失败,API将给出代码为401的响应

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

    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
    -> 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.
但有一个问题。 当我直接在bash中运行此服务器时,我可以使用脚本获取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
    -> 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上运行这个服务器时。当脚本post并返回401响应时,我发现服务器没有给我任何内容。但是,只有我发送了一个请求,方法是get,此内容才会再次出现

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

有人能帮我吗