代码执行

在线运行代码

0次调用
4 积分/次

想给你的编程学习网站、算法刷题平台或者聊天机器人加一个“在线运行代码”的功能?这个接口为你提供了一个安全、隔离的云端代码执行环境。

功能概述

提交一段源代码,指定对应的编程语言(支持 Python、JS、C/C++、Go 等),系统会在云端沙盒中编译并执行它,随后返回完整的标准输出(stdout)、标准错误(stderr)以及程序的运行耗时和退出状态。

灵活的输入控制 你可以通过 stdin 参数,向用户程序传递所需的标准输入流,完美支持算法题的用例测试场景。

安全受控的网络策略 代码默认在断网的封闭环境下运行(offline 模式)。如果用户的代码需要拉取外部数据,你可以开启 public 模式,并严格限制允许访问的公网主机(如 api.github.com)和端口,从根源上杜绝恶意网络探测。

使用须知

重要

接口返回 HTTP200 仅仅代表“云端成功接收并跑完了这个任务”,并不代表用户的代码成功运行。请务必在前端业务逻辑中,严格依靠响应体内的 status 字段来判断结果(success 为成功,其余可能为 compile_errorruntime_errortimeout)。

容量限制

  • 传入的源代码(code)以及标准输入(stdin)最大均不可超过 65536 字节(按 UTF-8 编码计算)。
  • 执行超时时间最高可设置为 30000 毫秒(30秒)。

关于运行包(Packs): 目前建议固定传递空数组 []。请勿将此字段暴露给前端用户任意填写,以免导致不可控的依赖加载失败。

请求体

包含了编程语言、源代码主体及各项执行策略参数。必须采用严格 JSON 格式校验。

language
string必填

编程语言及其推荐标识符。

code
string必填

完整的源代码内容。最大 65536 字节。

stdin
string可选

传递给程序的标准输入流内容。最大 65536 字节。

timeout_ms
integer可选

用户程序的执行超时时间(毫秒)。范围 1 - 30000。

network
object可选

沙盒的网络访问策略。未提供时默认采用 offline 断网模式。

mode
string可选

offline: 完全断网;public: 受控公网访问。

allow_hosts
string[]可选

public 模式下允许访问的主机列表(限纯域名或IP)。最多 16 项。

allow_ports
integer[]可选

public 模式下允许访问的目标端口。未提供时默认为 80 和 443。

packs
string[]可选

请求加载的附加运行包。当前请固定传入空数组 [] 或直接不传。

响应

200 / 请求成功

云端执行服务成功处理了任务。请通过响应体内的 status 字段判断代码真实运行结果。

JSON

400 / 错误的请求

请求参数错误或 JSON 语法校验失败(例如:携带了未定义的未知字段、长度越界等)。

JSON

413 / 请求实体太大

提交的内容过大。可能是源码 (code) 或输入流 (stdin) 超出了 65536 字节的限制。

JSON

503 / 服务不可用

代码执行沙盒服务暂时不可用或排队队列已满,请稍后重试。

JSON

504 / 网关超时

服务等待执行结果超时,通常由于系统处于高负载状态导致。

JSON