这是我在Django视图中用来接受post请求的函数,但是有时会返回None,对这个问题有任何想法吗?
def acceptpost(request):
try:
print "request.method:", request.method
print "content_type:", request.content_type
print "request.body:",request.body
time.sleep(0.1)
except Exception as e:
log.error(e)
return HttpResponse("error")
return HttpResponse("OK")
我用来发布数据的功能是:
def post_data(url, data)
try:
req = requests.post(url=url, data=data, verify=False)
response = req.status_code
content = req.content
except RequestException as e:
response = e.response
log_debug.error("HttpResponse: %s" % response)
continue
此功能在While True
中,
网址为:url ='http://127.0.0.1:8000/acceptpost/'。
在大多数情况下,我可以获得正确的HttpResponse,在这种情况下是“ok”,有时我只能得到None,两个函数都在localhost上运行,Web服务器是Django Web服务器地址为http://127.0.0.1/acceptpost/。
我没有捕获任何登录功能acceptpost
,但偶尔有HttpResponse None
,是否有任何关于此问题的想法?
答案 0 :(得分:1)
您的代码本身似乎没有问题。您获得的None
来自e.response
,此处等于None
。这可能意味着您的请求未被发送,因此没有响应。
RequestException
是涵盖多种异常的一般异常。我建议您看this manual page (不确定它是否是最新的,但仍然可以很好地了解您可以获得的许多例外情况)。区分代码中的大多数异常将帮助您调试它。