我正试图在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上下文中无效。
答案 0 :(得分:0)
我找到了原因。
我注意到我的原始命令在url参数中有尖峰,像这样:
pb = new ProcessBuilder("curl", "-X", "GET", "'https://www.google.com'");
顶点导致上述错误。
解决方案是删除每个参数中的任何顶点,并且效果很好。