java - 如何在 http 流的末尾发送错误代码
问题描述
我正在通过流将流程调用的输出发送到 http 响应。现在我想以某种方式通知客户端进程调用的返回代码,或者至少如果返回代码不是 0。对于通过 http 代码发送此信息已经太晚了。将它嵌入到流中对我来说是可以的(例如,通过一个不可见的字符,这将由客户端评估),但目前我没有看到这样做的方法。这是我创建流的代码。
private Response getStreamResponse(List<String> cmd) throws IOException {
log.info("command: " + String.join(" ", cmd));
Process process = new ProcessBuilder().command(cmd).redirectErrorStream(true).start();
return Response.ok((StreamingOutput) outputStream -> copyStream(process.getInputStream(), outputStream)).build();
}
private void copyStream(InputStream source, OutputStream target) throws IOException {
byte[] buf = new byte[8];
int length;
while ((length = source.read(buf)) > 0) {
target.write(buf, 0, length);
target.flush();
}
}
知道如何实现这一目标吗?
解决方案
推荐阅读
- android - Firebase push notification not recieving in Android TV box , but recieving fine in in Tab and phone
- java - 如何解决来自 RHEL6 服务器的 GLIBC 2.14 错误
- javascript - 如何用“-”运算符替换空格和逗号?
- android - Quantized tflite model has large sized apk than unquantized
- javascript - 如果变量在 Jquery 中包含特殊字符,我该如何设置值
- centos - 如何在 CentOS 上禁用 Nouveau 内核驱动程序
- powershell - Azure DevOps Release Pipeline Inline Powershell 脚本无法运行 python unittest 套件
- .net - 无法使用 ngrok 远程调试已部署的 microsoft bot
- java - 如何在Java中调用给定特定参数类的不同方法
- ios - 从框架中的协议中抑制变量名称长度