我正在构建一个使用Hackerearth API的代码编辑器.I已经使代码发送一个异步应用程序接口请求,因为它将加快性能和减少等待时间。
我参考了他们关于发送异步请求的docs。我需要指定一个回调url.Currently,我的项目正在本地运行。所以我不知道如何指定回调URL并呈现来自该回调url的响应。在他们的文档中也指定了用于处理在回调url处收到的响应的.The逻辑。
def compileCode(request):
if request.is_ajax():
source = request.POST.get('source')
lang = request.POST.get('lang')
client_secret = settings.CLIENT_SECRET
data = {
"client_secret": client_secret,
"async": 1,
'id': 123,
'callback': **what to do here**,
"source": source,
"lang": lang,
}
res = requests.post(RUN_URL, data=data)
return JsonResponse(res.json(), safe=False)
return HttpResponseBadRequest()
处理来自回调URL的响应的代码
def api_response(request):
payload = request.POST.get('payload', '')
payload = json.loads(payload)
run_status = payload.get('run_status')
o = run_status['output']
return HttpResponse('API Response Recieved!')
欢迎任何帮助:)
发布于 2018-06-11 21:41:29
回调URL“回调”一个网址,而不是一些代码,它可以被API方法调用,你可以在调用完成后调用。该URL可以是任何内容。它不一定是静态URL。通常,它是执行某些功能的脚本。
在这里,你不需要在收到结果后执行任何操作。
你不需要通过callback url
,即使没有它也可以工作。
我只是通过下面的代码让它工作。
RUN_URL = "https://api.hackerearth.com/v3/code/run/"
CLIENT_SECRET = 'your-client-secret-from-hackerearth'
data = {
'client_secret': CLIENT_SECRET,
'async': 1,
'source': source,
'lang': lang,
}
r = requests.post(RUN_URL, data=data)
https://stackoverflow.com/questions/50797588
复制相似问题