【发布时间】:2020-11-12 14:38:51
【问题描述】:
我按照这些教程How to use cURL in Java?、https://www.baeldung.com/java-curl 学习了如何从 Java 运行 curl,但它不起作用。
curl 命令(删除页面)从终端运行良好,并以 XML 形式给出响应,但是当我在 java 中尝试时,nada 没有错误,没有 XML,页面也保持不变。
这是我尝试过的:
public class TryCurl {
static String command = "curl -u username:password -X POST -F cmd=\"deletePage\" -F path=\"/content/demo-task/section\" https://author1.dev.demo.adobecqms.net/bin/wcmcommand";
public static void main(String[] args) throws Exception {
Process process = Runtime.getRuntime().exec(command);
process.getInputStream();
process.destroy();
}
}
我在这里做错了什么?
【问题讨论】:
-
process.getInputStream();你得到它并把它放在...哪里,确切地? -
我建议您阅读有关该 Process 类的教程以了解它的工作原理。你知道,获取一个输入流......它返回一个可以读取输入的对象。但是你丢弃了那个对象。那么你希望这段代码做什么呢?在我看来,您似乎认为“好吧,有那个 Process 类”......但后来您停止研究它。
-
你可以尝试打印运行 curl 的结果吗?过程是否为您提供了一种方法来做到这一点?顺便说一句,你可以在 Java 中使用一些库来做类似 curl 的东西,比如 Apache 的 HTTP 组件
-
Java 中根本不需要 CURL。开箱即用的java.net.URL 类支持 HTTP。但你最好改用Apache HTTP client行业标准库
-
重申其他人所说的:不要使用 curl。 Java 完全能够调用 URL 并检索其内容。使用 URL 类,或使用 java.net.http 包。 (而且您可能不应该依赖 baeldung.com 寻求建议。我观察到它经常忽略良好做法。)