【发布时间】:2019-03-28 12:25:02
【问题描述】:
我正在尝试将 Java 中的 cUrl 命令调用到 https url。
我只是使用以下内容:
ProcessBuilder pb = new ProcessBuilder("curl", "-X", "GET", "https://...");
Process p = pb.start();
errorStream 打印以下内容:
curl: (1) Protocol "'https" not supported or disabled in libcurl
但是如果我在终端中执行 cUrl 命令,它会毫无问题地回答。
我还尝试了以下方法:
pb = new ProcessBuilder("curl", "-V");
返回:
curl 7.54.0 (x86_64-apple-darwin16.0) libcurl/7.54.0 SecureTransport zlib/1.2.8
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz UnixSockets
我不明白为什么该命令在终端中有效,但在 Java 上下文中无效。
【问题讨论】:
-
试试
ProcessBuilder pb = new ProcessBuilder("/usr/bin/curl", "-X", "GET", "https://www.google.com");,我在这里的Mac 上有相同的curl 版本,它工作正常。也许您的系统上安装了两个不同的 curl。 -
感谢您的建议。 “curl”和“/usr/bin/curl”的结果是一样的,但我找到了原因:我的url在'符号内!