Java ProcessBuilder: curl: (1) Протокол "https" не поддерживается или отключен в libcurl - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь вызвать команду cUrl в Java по URL-адресу https.

Я просто использую следующее:

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 голосов
/ 24 октября 2018

Я нашел причину.

Я заметил, что у моей исходной команды были аргументы в аргументе url, например:

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

Апекс вызвал ошибку, указанную выше.

Решением является удаление любой вершины в каждом аргументе, и она отлично работает.

...