如何在JDoodle API中实现用户输入?附PHP请求及Java代码示例
在JDoodle API中实现Java代码的用户输入处理
嘿,我来帮你搞定这个问题!你的Java代码用了Scanner读取标准输入,但目前的JDoodle API请求里没传递输入数据,只需要给请求参数加个stdin字段就能解决这个事儿。
核心逻辑说明
JDoodle API提供了stdin参数,专门用来传递程序运行时需要的控制台输入内容。它会模拟用户在终端手动输入的操作,如果有多个输入项,还可以用换行符\n来分隔不同的输入值。
修改后的请求代码
首先更新你的$postData数组,新增stdin字段:
// 这里可以是固定测试值,也可以是从前端用户处获取的输入变量 $userInput = "5"; // 模拟用户输入整数5 $postData = array( "script" => $code, "language" => $language, "versionIndex" => "2", "clientId" => "ed3d8b92ac70bc1c3ad2382d334afc1d", "clientSecret" => $hiddenKey, "stdin" => $userInput // 新增的输入参数,传递用户输入内容 );
请求上下文的创建代码不需要大改动,因为json_encode会自动处理新增的字段:
$context = stream_context_create(array( 'http' => array( 'method' => 'POST', 'header' => "Content-Type: application/json\r\n", 'content' => json_encode($postData) ) ));
效果验证
当你发送这个请求后,JDoodle会把stdin里的内容作为标准输入传给你的Java程序,程序里的Scanner就能正常读取到值了。比如上面设置$userInput = "5",程序运行后会输出:
Enter x = X = 5
如果你的Java代码需要多个输入(比如先输入整数再输入字符串),只需要把stdin设为"5\nHelloWorld"这样的格式,程序会按顺序读取这些输入内容。
内容的提问来源于stack exchange,提问作者Rajat Patil
相关产品推荐
相关产品推荐

