Java ProcessBuilder:curl:(1)libcurl中不支持或禁用协议“'https”

时间:2018-10-24 07:18:24

标签: java curl https libcurl

我正试图在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上下文中无效。

1 个答案:

答案 0 :(得分:0)

我找到了原因。

我注意到我的原始命令在url参数中有尖峰,像这样:

pb = new ProcessBuilder("curl", "-X", "GET", "'https://www.google.com'");

顶点导致上述错误。

解决方案是删除每个参数中的任何顶点,并且效果很好。