Я использую сервер Java, который предоставляет RESTful API по следующему URL:
http://localhost:8080/my-server/
Документы рекомендуют использовать curl
для отправки простых PUT
запросов (выгрузка файлов) и настоятельно рекомендуют пользователям использовать те же аргументы, что и в примерах. Все примеры выглядят так:
curl -X PUT -f -u admin:password --data-binary @/absolute/path/file/to/upload/file.ext "http://localhost:8080/my-server/file.ext"
Этот сервер не будет работать с FTP или любым другим обычным протоколом передачи.
Я нашел этот вопрос о SO, где ответчик рекомендовал использовать java.net.URL
и его спутника java.net.URLConnection
вместо попытки работать с curl / libcurl.
Я никогда прежде не запускал команду curl
, поэтому я спрашиваю любого, кто знает и curl, и Java, можно ли использовать URL / URLConnection (или любую другую инфраструктуру Java) вместо curl для моей конкретной проблемы. Если нет, то мне придется написать компонент, который выполняет команды из локальной командной строки / терминала, а затем выполнить вышеупомянутую команду curl
внутри этого компонента, и это просто кажется уродливым / неприятным.
Если я могу выполнить то же самое в сетевом API Java, я бы предпочел сделать это таким образом.
И, если это можно сделать на Java, как бы я использовал URL / URLConnection, чтобы установить точные те же аргументы команды, что и в приведенном мной примере? В частности:
-X
PUT
-f
-u admin:password
--data-binary
-@absolute/path/...
Заранее благодарим вас за понимание или толчок в правильном направлении!