就像标题中描述的,我的线程不工作。有关详细信息,请参阅以下代码:
在回调中调用的线程
def callback(request):
response_data = {}
code = request.GET.get('code', None)
if code:
response_data['code']= code
thr = threading.Thread(target=request_token_Api, args=(request, code, response_data))
thr.setDaemon(True)
thr.start()
value =thr.is_alive()
print("Thread is Alive:",value)
thr.join()
return JsonResponse(response_data)
我正在调用的方法(request_token_Api
)进行Oauth2令牌请求调用,但是当我检查thred.is_alive()
时,返回值为False,而它应该为True,我不知道为什么。我试图在thread.start
后面加上thread.run()
,但是我得到了一条AttributeError
消息。你知道吗
请求令牌Api方法
def request_token_Api(request, code, response_data):
if request.method =='POST':
url = "https://oauth2.api_token_request.com"
params = {
'grant_type': 'authorization_code',
'client_id': API_KEY,
'client_secret': SECRET_KEY,
'code': code,
'redirect_uri': URI
}
response = requests.get(url, params=params, verify=True)
reponse= response.json()
return reponse
我怀疑
request_token_Api
在您有机会检查之前正在退出,因此线程已经完成。在request_token_Api
中,仅当方法是“POST”时才执行某些操作,但在callback
中,您将查看GET
的request
属性,并确保在那里有值。所以这两件事可能永远不会同时发生您应该更改何时调用
request_token_Api
的逻辑,或者更改当您在其中时希望保持的逻辑。但是如果您有一个有效的GET
代码,那么您可能没有使用POST
方法到达那里。你知道吗相关问题 更多 >
编程相关推荐