首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >接口响应Django的回调URL

接口响应Django的回调URL
EN

Stack Overflow用户
提问于 2018-06-11 20:19:05
回答 1查看 2.6K关注 0票数 2

我正在构建一个使用Hackerearth API的代码编辑器.I已经使代码发送一个异步应用程序接口请求,因为它将加快性能和减少等待时间。

我参考了他们关于发送异步请求的docs。我需要指定一个回调url.Currently,我的项目正在本地运行。所以我不知道如何指定回调URL并呈现来自该回调url的响应。在他们的文档中也指定了用于处理在回调url处收到的响应的.The逻辑。

代码语言:javascript
复制
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的响应的代码

代码语言:javascript
复制
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!')

欢迎任何帮助:)

EN

回答 1

Stack Overflow用户

发布于 2018-06-11 21:41:29

回调URL“回调”一个网址,而不是一些代码,它可以被API方法调用,你可以在调用完成后调用。该URL可以是任何内容。它不一定是静态URL。通常,它是执行某些功能的脚本。

在这里,你不需要在收到结果后执行任何操作。

你不需要通过callback url,即使没有它也可以工作。

我只是通过下面的代码让它工作。

代码语言:javascript
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50797588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档